Это выглядит немного избыточно, но я разобрался с помощью join
. Довольно уродливый, хотя. Обратите внимание на select
часть. Без этого все запутано
$orders = \App\Orders::select('orders.*')
->with([
'....',
'participant',
'participant.documents',
'participant.participantParent',
'participant.country',
'...'
])
->join('order_participants', function ($join) {
$join->on('order_participants.order_id', '=', 'orders.id');
})
->where('orders.user_id', $user->id)
->where(function($q) {
$q->where('orders.status', '!=', 'completed')
->orWhereNull('orders.status');
})
->orderBy('order_participants.last_name')
->orderBy('order_participants.first_name')
->get();
Поскольку мой запрос немного сложнее, чем в предыдущем вопросе, я публикую весь код в качестве примера. Как я понимаю, join
должно предшествовать where
заявлениям