php - Laravel 对不同颜色和大小进行分组
问题描述
我正在使用 Laravel 开发一个电子商务网站,我真的很纠结这个问题。
每个具有不同颜色或尺寸的产品都必须作为产品存储在数据库中。因此,例如,我们提供一些黑色和白色的 T 恤,尺寸为 M、L、XL,数据库中有 6 种 T 恤产品:
- T恤黑色M
- T恤黑色L
- T恤黑色XL
- T恤红M
- T恤红L
- T恤红XL
我们有一个与产品相关的表格,其格式如下:
ID | product_id | 属性 | 价值 | group_id |
---|---|---|---|---|
-- | ---------- | 颜色 | 黑色的 | -------- |
-- | ---------- | 颜色 | 红色的 | -------- |
-- | ---------- | 尺寸 | 米 | -------- |
-- | ---------- | 尺寸 | l | -------- |
-- | ---------- | 尺寸 | XL | -------- |
在控制器中我们使用这些查询来获取数据
$colorGroup = ProductGroup::with('product')->where('group_id', '=', $product->group_uid)->where('attribute', '=', 'color')->get();
$sizeGroup = ProductGroup::with('product')->where('group_id', '=', $product->group_uid)->where('attribute', '=', 'size')->get();
现在,如果您访问 T 恤黑色 M 的产品页面,我们还想显示尺码和颜色的其他选项以及当前选择的产品颜色和尺码。例如:
选择颜色:黑色(已选)、红色
选尺码:M(已选)、L、XL
解决方案
推荐阅读
- python - Get List of latest stable files from FTP server
- assembly - 有没有办法从 EL0 刷新 ARM 缓存?
- c - 如何通过全局变量更新数组元素值?
- ios - Xcode 可以在编辑器中通过代码将项目添加到情节提要吗?
- javascript - How do I disable scrolling when the hamburger menu is clicked? Then re-enable scrolling when an option is selected from the navigation menu
- c# - 每次刷新页面时都会触发 DataList 按钮
- python - How to change my script from an input in python
- r - 使用 dplyr 将所有行保持在 R 中的特定值
- ios - iOS 应用程序在升级正在运行的应用程序时会发生什么
- mysql - Laravel 迁移耗时过长