二十九:分别获取主子订单数据、数组映射成模型
一:主子订单数据
{"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;
}
}


浙公网安备 33010602011771号