如何解决在yii2中创建一个嵌套对象以获取Json响应作为输出
我从下面的现有代码中得到一个Json响应
[
{
"FIRST_NAME": "","LAST_NAME": "","Detail": {
"COUNTRY": ""
},]
但是我需要按以下方式打印Json
{
"FIRST_NAME": "","Detail" : [{
"COUNTRY" : ""
},...]
}
这是我的模型视图代码。.我在这里缺少什么?我被困在这里!我打算做的是用我想要的具有空值的结构创建一个for循环。然后,我要将db值传递到字段中。
private function result($a){
try{
$ex = Applications::find()
->joinWith(["p p"=>function($p){
$p->select(["p.*","t.TITLE_C"])
->joinWith(["title t"])
->joinWith(['country c'])
->orderBy('p.M');
}])
->all();
$ex = self::output($ex);
return $ex;
return ['status' => 200,'message' => "OK",'count' => 0,'results' => json_encode($results)];
}catch(Exception $ex){
return ['status' => 400,'message' => $ex->getMessage(),'results' => []];
}
}
private function output($ex){
$ex = \yii\helpers\ArrayHelper::toArray($ex,[
'temp\models\App' => [
"FIRST_NAME" => function($subModel){
return "";
},"LAST_NAME" => function($subModel){
return "";
},"detail" => function($subModel){
if($subModel->p){
return self::format($subModel->p);
}else{
return "";
}
}
]]);
return $ex;
}
private function format($detail){
$detail = \yii\helpers\ArrayHelper::toArray($detail,[
'temp\models\App1' => [
"COUNTRY"
]]);
return $detail;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。