Laravel:检索 JSON 数组中值的计数
Laravel: retrieve count of value in JSON array
Iv 目前接手了一个项目,开发人员在某些 table 的 json 数组列中存储了 has many
关系。
产品table
----------------------------
id | product | colour
----------------------------
1 iPhone ["8","4","1"]
2 iPad ["8","1"]
3 Macbook ["8"]
这是产品和可用产品颜色之间存储的关系的示例。
我需要能够获得与特定颜色相关的产品数量。
所以在这个例子中... colour: 8
会 return 3 products
我习惯于 Eloquent 利用 $product->colours()
的关系,但不幸的是在这种情况下我不能这样做,而且我无法更改当前的数据库结构。
我如何使用 eloquent where 或 whereIn 子句获得每种颜色的产品数量?
到目前为止我尝试了什么...
$count = $products->where('colour', '[$colour->id]')->count();
----
$count = $products->whereIn('colour', $colour->id)->count();
如有任何帮助,我们将不胜感激。提前致谢。
这很丑陋,但我想它可行:
\App\Product::where('colour','like','%"' .$colour->id '"%')->distinct()->count()
Iv 目前接手了一个项目,开发人员在某些 table 的 json 数组列中存储了 has many
关系。
产品table
----------------------------
id | product | colour
----------------------------
1 iPhone ["8","4","1"]
2 iPad ["8","1"]
3 Macbook ["8"]
这是产品和可用产品颜色之间存储的关系的示例。
我需要能够获得与特定颜色相关的产品数量。
所以在这个例子中... colour: 8
会 return 3 products
我习惯于 Eloquent 利用 $product->colours()
的关系,但不幸的是在这种情况下我不能这样做,而且我无法更改当前的数据库结构。
我如何使用 eloquent where 或 whereIn 子句获得每种颜色的产品数量?
到目前为止我尝试了什么...
$count = $products->where('colour', '[$colour->id]')->count();
----
$count = $products->whereIn('colour', $colour->id)->count();
如有任何帮助,我们将不胜感激。提前致谢。
这很丑陋,但我想它可行:
\App\Product::where('colour','like','%"' .$colour->id '"%')->distinct()->count()