如何在laravel json输出中使两个对象处于同一级别?

如何在laravel json输出中使两个对象处于同一级别?,json,laravel,api,formatting,parameter-passing,Json,Laravel,Api,Formatting,Parameter Passing,我有两个模型名为Student和Roll。我想对他们的数据进行分析,以便他们保持在同一水平。 控制器部分 $stuents=Student::all(); $count=$stuents->count(); $rolls=Roll::all(); $response=[]; for($i=0;$i<$count;$i++){ $response[$i]=[ 'students'=>$stuents[$i],

我有两个模型名为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

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

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