【问题标题】:How to bring two object in the same level in laravel json output?如何在 laravel json 输出中将两个对象置于同一级别?
【发布时间】:2021-01-19 06:23:31
【问题描述】:

我有两个模型,名为 Student 和 Roll。我想要他们的数据,使他们保持在同一水平。 控制器部分..

   $stuents=Student::all();
   $count=$stuents->count();
   $rolls=Roll::all();
   $response=[];
   for($i=0;$i<$count;$i++){
        $response[$i]=[
        'students'=>$stuents[$i],
        'roll_number'=>$rolls[$i]
        ];
   }
   return response($response);

上述响应的输出..

[
{
    "students": {
        "name": "habib",
        "dept": "ece"
    },
    "roll": 1609047
},
{
    "students": {
        "name": "hafiz",
        "dept": "ece"
    },
    "roll": 1609061
}  

]

但我的预期输出将是..

[
{
    "students": {
        "name": "habib",
        "dept": "ece",
        "roll": 1609047
    }
},
{
    "students": {
        "name": "hafiz",
        "dept": "ece",
        "roll": 1609061
    }
}
]

我该如何解决这个问题?

【问题讨论】:

    标签: json laravel api formatting parameter-passing


    【解决方案1】:

    您必须将角色添加到要添加到响应数组中的每个学生。

    如果$students中的对象:

    for ($i = 0; $i < $count; $i++) {
        // if object
        $students[$i]->roll = $rolls[$i];
    
        $response[] = [
            'student' => $students[$i],
        ];
    }
    

    如果$students中的数组:

    for ($i = 0; $i < $count; $i++) {
        $response[] = [
            'student' => ['roll' => $rolls[$i]] + $students[$i],
        ];
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-16
      • 2015-12-17
      • 1970-01-01
      • 2020-11-12
      • 2018-12-03
      • 2013-01-24
      • 1970-01-01
      • 2019-11-26
      相关资源
      最近更新 更多