二十九:分别获取主子订单数据、数组映射成模型

一:主子订单数据

{"user_id":101,"order_status":1,"order_money":120, "order_items":[{"prod_id":102,"prod_name":"pname1","prod_price":10,"discount":9,"prod_num":5,"prod_remark":"备注1"},{"prod_id":101,"prod_name":"pname2","prod_price":12,"discount":8,"prod_num":2,"prod_remark":"备注2"}]}

主订单中含有子订单若干数据(子订单若干数据分别为数组)

二:数组映射成模型实体

function mapToModelsArrary(array $maps,$class){

    $ret=[];
foreach($maps as $map){
$getObject=mapToModel($map,$class);
if($getObject){
$ret[]=$getObject;
}
}
return $ret;
}
function mapToModel(array $map,$class){//把数组映射成实体 (一维数组)
try {
$class_obj = new ReflectionClass($class);
$class_instance=$class_obj->newInstance();//根据反射对象创建实例
$methods=$class_obj->getMethods(ReflectionMethod::IS_PUBLIC);
foreach ($methods as $method){
if(preg_match("/^set(\w+)/",$method->getName(),$matches)){
invokeSetterMethod($matches[1],$class_obj,$map,$class_instance);
}
}
return $class_instance;
} catch (Exception $e) {
return null;
}
}

 

 

 

 

posted @ 2019-11-21 10:16  痞子胥  阅读(255)  评论(0)    收藏  举报