我有兩個模型,獎品和門票。獎品有許多與之相關的票證,還有一個winner_ticket_id是一對一的關系。
現在我要做的是查詢我所有的票,但只查詢被稱為ticket_winner_idin Prize 的票。
我正在使用以下代碼:
$tickets = Ticket::with('user')->whereHas('prize', function ($query) {
$query->where('ticket_winner_id');
})->orderBy('created_at', 'DESC')->paginate(30);
然而,上面的代碼帶回了我所有的門票,而不是中獎者。有人可以展示我如何僅查詢中獎彩票嗎?
我知道從 Prize 開始并與獲勝者列建立關系很容易,但我想從 Ticket 集合開始,這樣我就可以將其注入一些可重用的刀片模板。
uj5u.com熱心網友回復:
最好這樣寫:
Ticket::with('user')
->innerJoin('prizes', 'prizes.ticket_winner_id', 'tickets.id')
->orderBy('tickets.created_at', 'DESC')
->paginate(30);
這將是好得多,如果你在添加了一個標志tickets表告訴票是贏家,也可以添加prize_id在tickets表中。
希望這能解決。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/379625.html
