Php 如何使用laravel 5创建自定义阵列
请告诉我如何使用以下3个查询生成这样的数组Php 如何使用laravel 5创建自定义阵列,php,laravel-5.1,Php,Laravel 5.1,请告诉我如何使用以下3个查询生成这样的数组 $shiftsids = Shifts::select('id','shift_no', 'bus_no', 'shift_start_time', 'shift_end_time', 'run_type') ->where('user_id', '=', $driver_id->id) ->where('week_id', '=', $week_id-
$shiftsids = Shifts::select('id','shift_no', 'bus_no', 'shift_start_time', 'shift_end_time', 'run_type')
->where('user_id', '=', $driver_id->id)
->where('week_id', '=', $week_id->id)
->where('time_sheet_id', '=', $timesheet_id->id)
->get();
$preCheck = DB::table('driver_pre_departure_items')
->join('shifts', 'shifts.id', '=', 'driver_pre_departure_items.shift_id')
->select('shift_id','item','value')
->where('driver_pre_departure_items.shift_id', '=', $shiftsid->id)
->get();
$postCheck = DB::table('driver_shift_end_items')
->join('shifts', 'shifts.id', '=', 'driver_shift_end_items.shift_id')
->select('shift_id','item','value')
->where('driver_shift_end_items.shift_id', '=', $shiftsid->id)
->get();
这就是我想要得出结果的方式。
我想为每个班次显示预检查和后检查,如下所示。
我该怎么做
{
"data": [
{
"shift_no": 1,
"bus_no": "",
"shift_start_time": "08:00:00",
"shift_end_time": "10:00:00",
"run_type": "S",
"driver_pre_departure_items": [
{
"pre_departure_type": 1,
"item_name": "Check all running lights & indicators",
"value": 0
},
{
"pre_departure_type": 2,
"item_name": "Look for tyres that are flat or partly flat- check wheel nuts",
"value": 0
}
],
"driver_shift_end_items": [
{
"shift_end_type": 1,
"item_name": "Record any problems in defect book",
"value": 0
},
{
"shift_end_type": 2,
"item_name": "Tell management or mechanic if there are any problems that require attention",
"value": 0
}
]
},
更新
$array = array();
$shiftsids = Shifts::select('id','shift_no', 'bus_no', 'shift_start_time', 'shift_end_time', 'run_type')
->where('user_id', '=', $driver_id->id)
->where('week_id', '=', $week_id->id)
->where('time_sheet_id', '=', $timesheet_id->id)
->get();
foreach ($shiftsids as $shiftsid)
{
$array[]['shift_no'] = $shiftsid->shift_no;
$array[]['shift_start_time'] = $shiftsid->shift_start_time;
$array[]['shift_end_time'] = $shiftsid->shift_end_time;
$preCheck = DB::table('driver_pre_departure_items')
->join('shifts', 'shifts.id', '=', 'driver_pre_departure_items.shift_id')
->select('shift_id','item','value')
->where('driver_pre_departure_items.shift_id', '=', $shiftsid->id)
->get();
foreach ($preCheck as $pch)
{
$array[]['driver_pre_departure_items'] = array('item' => $pch->item,'value' => $pch->value);
}
$postCheck = DB::table('driver_shift_end_items')
->join('shifts', 'shifts.id', '=', 'driver_shift_end_items.shift_id')
->select('shift_id','item','value')
->where('driver_shift_end_items.shift_id', '=', $shiftsid->id)
->get();
foreach ($postCheck as $pch)
{
$array[]['driver_shift_end_items'] = array('item' => $pch->item,'value' => $pch->value);
}
}
return ['data' => $array];
新产量
{
"data": [
{
"shift_no": 1
},
{
"shift_start_time": "08:00:00"
},
{
"shift_end_time": "13:00:00"
},
{
"driver_pre_departure_items": {
"item": "Check all running lights & indicators",
"value": 0
}
},
{
"driver_pre_departure_items": {
"item": "Look for tyres that are flat or partly flat- check wheel nuts",
"value": 0
}
},
{
"shift_no": 2
},
{
"shift_start_time": "13:00:00"
},
{
"shift_end_time": "18:00:00"
},
{
"driver_pre_departure_items": {
"item": "Check all running lights & indicators",
"value": 0
}
},
{
"driver_pre_departure_items": {
"item": "Look for tyres that are flat or partly flat- check wheel nuts",
"value": 0
}
},
{
"driver_pre_departure_items": {
"item": "Check that tyres on dual wheels are not touching one another ",
"value": 0
}
},
{
"driver_pre_departure_items": {
"item": "Make sure that no liquids are leaking onto the road, or into the engine compartment",
"value": 0
}
}
}
]
}
我试过你的代码,请检查我的问题更新部分,我重新编写你的代码的方式,我把。位它没有给出正确的数组结构。请检查并告知您是否可以转储输出?仍然驱动程序\u出发前\u项目和驱动程序\u狗屎\u结束\u项目是分开的
$array = array();
$shiftsids = Shifts::select('id','shift_no', 'bus_no', 'shift_start_time', 'shift_end_time', 'run_type')
->where('user_id', '=', $driver_id->id)
->where('week_id', '=', $week_id->id)
->where('time_sheet_id', '=', $timesheet_id->id)
->get();
foreach ($shiftsids as $shiftsid)
{
$zarray = array(
['shift_no'] => $shiftsid->id,
// ...
// ...
// other parameters
);
$preCheck = DB::table('driver_pre_departure_items')
->join('shifts', 'shifts.id', '=', 'driver_pre_departure_items.shift_id')
->select('shift_id','item','value')
->where('driver_pre_departure_items.shift_id', '=', $shiftsid->id)
->get();
foreach ($preCheck as $pch)
{
$zarray['driver_pre_departure_items'][] = array('
'pre_departure_type' => $pch->pre_departure_type;
')
}
$postCheck = DB::table('driver_shift_end_items')
->join('shifts', 'shifts.id', '=', 'driver_shift_end_items.shift_id')
->select('shift_id','item','value')
->where('driver_shift_end_items.shift_id', '=', $shiftsid->id)
->get();
foreach ($postCheck as $pch)
{
$zarray['driver_pre_departure_items'][] = array('
'pre_departure_type' => $pch->pre_departure_type;
')
}
$array[] = $zarray;
}