【发布时间】:2017-11-14 09:32:18
【问题描述】:
Iv 目前接管了一个项目,其中开发人员在某些表的 json 数组列中存储了 has many 关系。
产品表
----------------------------
id | product | colour
----------------------------
1 iPhone ["8","4","1"]
2 iPad ["8","1"]
3 Macbook ["8"]
这是存储在产品和可用产品颜色之间的关系的示例。
我需要能够获得与特定颜色相关的产品数量。
所以在这个例子中...colour: 8 将返回 3 products
我习惯于使用 $product->colours() 的 Eloquent 关系,但不幸的是,在这种情况下我不能这样做,而且我无法更改当前的数据库结构。
如何使用雄辩的 where 或 whereIn 子句获得每种颜色的产品数量?
到目前为止我已经尝试过什么......
$count = $products->where('colour', '[$colour->id]')->count();
----
$count = $products->whereIn('colour', $colour->id)->count();
任何帮助将不胜感激。提前致谢。
【问题讨论】:
-
我希望你解雇了搞乱“关系”的“开发者”
-
$count = $products->where('color', $colour->id)->count(); ?
-
@Amarnasan 当我看到数据库时,我差点心脏病发作,没有用于 hasMany 关系的数据透视表。
-
@JérémyCasper 我已经尝试过了,返回一个空数组
-
我认为这个开发者错过了雄辩关系的全部意义
标签: laravel laravel-5.4