Скорее всего, вы не получите "обнуляемые" продукты, потому что у вас есть отношение Заказать-> Продукты. Когда вы вызываете $ order-> products (), eloquent пытается получить все сущности Product , которые связаны с вашим Заказом через поле product_id . Таким образом, если поле пустое, вы не можете получить Product , потому что нет соединения.
Одно из решений:
- создать другую сущность, например OrderLine (таблица Order_Product) ; добавить методы, такие как $ orderLine-> details () и отношение к Product , например, $ orderLine-> product ()
- добавить отношение к OrderLine внутри Order - $ order-> line () или $ order-> info () и т. Д. -> Order hasMany OrderLine
- затем используйте $ order-> line (), чтобы получить детали и продукты заказа (если есть)
p.s. Я скомпилировал его в моей голове, так что, возможно, понадобятся некоторые корректировки кода.
Удачи