我建立一個小的搜索引擎在全世界範圍內取多次往返,這裏是我的旅程表看起來像:雄辯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來做到這一點,它會成爲一個子查詢嗎?
感謝您的回答,看起來像它可以做的伎倆,我嘗試,讓你知道。 –
我驗證了你的答案,它現在就像一種魅力!謝謝。 –