Отношение один ко многим

Кажется, больше не могу понять, что я делаю неправильно после попытки заставить работать что-то еще, используя полиморфные отношения. У меня есть две настройки таблицы:

Оплата:

- id
- name
- etc..

Депозиты:

- id
- payment_id
- name
- etc..

Мои модельные отношения:

Оплата:

public function deposits()
{
return $this->hasMany(Deposit::class);
}

Депозит:

public function payments()
{
return $this->belongsTo(Payment::class);
}

Теперь у меня есть одна запись в каждой таблице для целей тестирования. Я пытаюсь загрузить платежи при отображении депозитов:

Например:

$deposits = Deposit::with('payments')->get();

Это не возвращает платеж, связанный с ним, просто возвращает null для отношения. В моей таблице payment_id равен 1, так же как и идентификатор в таблице платежей. Насколько я помню, это должно работать. Что мне не хватает?

Отредактируйте, getQueryLog возвращает это:

array(3) { [0]=> array(3) { ["query"]=> string(52) "select * from `users` where `users`.`id` = ? limit 1" ["bindings"]=> array(1) { [0]=> int(1) } ["time"]=> float(0) } [1]=> array(3) { ["query"]=> string(24) "select * from `deposits`" ["bindings"]=> array(0) { } ["time"]=> float(0) } [2]=> array(3) { ["query"]=> string(53) "select * from `payments` where `payments`.`id` in (?)" ["bindings"]=> array(1) { [0]=> int(0) } ["time"]=> float(0) } }

введите описание изображения здесь

0

Решение

Изменились мои отношения в моей модели депозита, и она работает:

public function payment()
{
return $this->belongsTo(Payment::class, 'payment_id');
}

Все еще выясняю, почему я должен добавить это, так как это должно работать и без него.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]