Laravel Использование двух отношений моделей для создания другого объекта модели - PullRequest
0 голосов
/ 16 февраля 2020

Иметь модель пользователя и дизайна, модель пользователя имеет много моделей предварительного заказа, а модель дизайна также имеет модель многих предварительных заказов. и предварительный заказ принадлежит пользователю и дизайн. (Проекты также открыты для пользователей) при создании предварительных заказов с использованием auth () -> user () -> designs () -> preorders () -> создавать отображения, предзаказы которых не определены.

модель пользователя

модель дизайна

модель предварительного заказа

ошибка

контроллер предварительного заказа

1 Ответ

0 голосов
/ 16 февраля 2020

Поскольку у пользователя может быть много дизайнов, Laravel не может знать, какой design_id должен быть связан с созданным предварительным заказом.

auth()->user()->designs()->preorders()->create([]); // Can't work because user has many designs. Which one should be used to create the preorder?

Вместо этого вы должны связать предварительный заказ по цепочке. создать метод для дизайна:

$design->preorders()->create(['user_id' => auth()->id()]); // One design and one user specified: preorder can be created.

или для $ user:

auth()->user()->preorders()->create(['design_id' => auth()->id()]); // One design and one user specified: preorder can be created.
...