【发布时间】:2019-11-02 08:55:32
【问题描述】:
$pfilters = ProductFilters
::whereIn('Tb_Product_filters.filter_value', $values)
->groupBy('Tb_Product_filters.product_id')
->join("Tb_Products","Tb_Products.id","Tb_Product_filters.product_id")
->join('Tb_Identities', 'Tb_Identities.id', '=', 'Tb_Products.employee_id')
->select(
"Tb_Products.*",
"Tb_Identities.first_name as fname",
"Tb_Identities.last_name as lname"
)
->get()
->toArray();
此查询为我提供了值数组中的所有产品,我只希望产品中包含所有值,例如
如果我有值 = [1,2,3]
以上声明给了我任何产品有value_id = 1 或2,3
我只希望产品收集 3 个属性,这意味着只有产品具有 value_id = 1 和 2 和 3 它应该搜索多行。
我有 4 张桌子 产品 过滤器 过滤器值 products_filters
首先我们从过滤器开始
任何过滤器都有一个或多个过滤器值 例如: filter = color , filters_value = [red,blue,green] 现在它们之间的关系依赖于 filter_id 作为 forgen key
产品表:当我创建产品时,我将选择产品过滤器和值 例如:iphone = [颜色:glod,rom:128GB] 所以我会将它们存储在 products_filters 中
products_filter 表将包含 ; product_id , filter_id , filter_value
假设我想要颜色为红色和 ROM 64GB 的产品?
【问题讨论】:
-
那么'ProductFilters'有很多
Tb_Product_filters吗?你和你的模型有关系吗? -
不,我没有在他们之间建立任何关系
-
@laravelmail 您说您想要具有
value_id=1、2和3的产品。这怎么可能?value_id是数组吗? -
让我为你解释一下
-
我有 4 个表 products filters filters_value products_filters 首先我们从过滤器开始 任何过滤器都有一个或多个 filters_values 示例:filter = color , filters_value = [red,blue,green] 现在它们之间的关系取决于在 filter_id 作为 forgen 关键产品表:当我创建产品时,我将选择产品过滤器和值示例:iphone = [color:glod, rom:128GB] 所以我将它们存储在 products_filters products_filter 表将包含; product_id , filter_id , filter_value 假设我想要颜色为红色和 rom 64GB 的产品?
标签: php laravel laravel-5 eloquent