#1
我是PHP和Laravel的新手。我通过创建电子商务商店系统来学习它。 所以问题是关于系统中的雄辩ORM和关系。
我的品牌目录包含属于品牌的产品。比我想要创建包含产品,类型,变体和照片的目录。
在下面的方案中,您可以看到现在完成的关系和数据库迁移。
我做了什么:
我需要做什么:
创建添加产品逻辑(仅限1个ProductVariant)。
添加新产品时,默认情况下应该创建1个ProductVariant 数据(例如华硕(品牌),ROG(产品),笔记本(类型),Zephyrus(变体))。
创建添加产品逻辑(超过1个ProductVariant)。
添加新产品时,但产品具有> 1 ProductVariant(例如Intel(品牌),Core i7(产品),CPU(类型)和Variants 7700,7700K,7600)。
所以,当我创建产品时(例如product / add.blade.php视图)。 使用示例表单:
<form action="{{ route('name of add route) }} method="post">
here goes brand select with options (foreach brands as brand)
than goes type select with options (foreach types as type)
than goes inputs for Product (name, country, etc.)
than goes inputs for ProductVariant (name, description, price, etc.)
than goes inputs for another ProductVariant.
</form>
我是否正确完成了所有关系? 我该如何将这些数据存储在Controller中的DB中?
另外,我有Product for Product,ProductVariant,ProductType。
如果有人可以帮助我,我将非常感激
答案 0 :(得分:0)
在此编写完整代码或描述如何在laravel中保存关系数据太长了。
请查看on page 253 of The Ruby Programming Language和此official documentation
连接正确的关系
根据您的示例,我认为您需要为表description
和Product
添加其他ProductVariant
字段,以存储有关产品或产品的具体变体的简短信息。
另外我认为这将是很多产品照片,它们将独立于产品变体(对于该产品的所有变体将是相同的)。要为每个变体没有重复的照片,您可以更改ProductPhotos表结构:
为了获得产品的具体变体的所有照片,您可以获得
product_variant_id IS NULL
)