Laravel, не выводит модель один к одному?
Столкнулся с таким моментом Есть модель Ticket id user_id status_id created_at updated_at
Есть модель Claimant id ticket_id info created_at updated_at
В моделе Ticket есть метод
public function claimant()
{
return $this->hasOne(Claimant::class);
}
Выполняю код в тинкере
$ticket = App\Ticket::find(46)
$ticket->claimant->info
Выводит как положено info из Claimant А если выполняю запрос
$tickets = App\Ticket::with(['claimant:id,info'])
->where('user_id',704)
->where('status_id', '>', 0)->get();
То выводит
App\Ticket {#917
id: 46,
user_id: 704,
status_id: 1,
created_at: "2020-04-16 02:03:47",
updated_at: "2020-04-16 02:03:47",
claimant: null,
}
Подскажите, что я делаю не так? Почему отношение claimant null?
Ответы (1 шт):
Автор решения: betplix
→ Ссылка
Разобрался. Допустил ошибку при составлении запроса, Нужно было сделать так:
$tickets = App\Ticket::with(['claimant:id,ticket_id,info'])
->where('user_id',704)
->where('status_id', '>', 0)->get();
Оказалось так, что в выборке должно присутствовать связующее поле, в моем случае ticket_id