我正在研究公交车站管理系统。我正在尝试在时间表中排队巴士。 所以我想要的是这个
我想显示不在特定时间表队列中的特定站点的所有公交车。
-就像如果一个站中有5辆公交车,那么其中2辆处于特定时间表的队列中,我想显示要选择的所有其他3辆公交车。
公交表
电台表
所以我这样做了
public function getBusQueue(Request $request)
{
$id = $request->id; // id of the targert schedule
// getting the target station id;
$schedule = Schedule::find($id);
$stations_id = $schedule->station_id;
// getting the buses that are not in queues table
$buses = DB::table("buses")->select('*')
->whereNotIn('bus_number',function($query) {
$query->select('bus_number')->from('queues');
})
->where('Schedule_id', $id)
->where('station_id', $stations_id)
->get();
$data = $buses;
return Response()->json($data);
}
答案 0 :(得分:1)
如果我理解正确,那么此查询中的相关时间表是队列的时间表,而不是公共汽车的时间表。
(此外,您似乎在schedule_id
表中输入了buses
列名。它当前的名称为schedual_id
。)
尝试将查询更改为以下内容:
$buses = DB::table("buses")->select('*')
->whereNotIn('bus_number',function($query) use($id) {
$query->select('bus_number')
->from('queues')
->where('schedule_id', $id);
})
->where('station_id', $stations_id)
->get();