我建立一个小的搜索引擎在全世界范围内取多次往返,这里是我的旅程表看起来像:雄辩ORM十字搜索
正如你所看到的,departure_checkpoint和arrival_checkpoint是链接,这是一个完整的旅程,所有这些目的地属于同一个announce_id号码2.我现在想要做的是创建一个表格,在其中插入您的出发点和到达点,搜索引擎将返回包含这些目的地的announce_id。很容易将并排位置(如巴黎)转到伦敦或维也纳到多伦多,但如何进行跨搜索以获取像巴黎 - 维也纳或巴黎 - 多伦多之类的旅程? (穿越目的地)。
我使用ORM雄辩的,这是我到目前为止有:
public function search(Request $request) {
if ($request->isMethod('post')) {
$departure = $request->get('departure');
$arrival = $request->get('arrival');
$announceIds = DB::table('journeys')
->select(DB::raw('announce_id'))
->where('departure_checkpoint', $departure)
->where('arrival_checkpoint', $arrival)
->get();
foreach($announceIds as $value) {
$this->founds = DB::table('announcesForDelivery')
->select(DB::raw('*'))
->where('announce_id', $value->announce_id)
->get();
}
return response()->json($this->founds);
}
return false;
}
这项工作只为并排的一面,但不交叉搜索。我想我将不得不使用announce_id来获取任何旅程,但我不确定如何用Eloquent ORM来做到这一点,它会成为一个子查询吗?
感谢您的回答,看起来像它可以做的伎俩,我尝试,让你知道。 –
我验证了你的答案,它现在就像一种魅力!谢谢。 –