如何在laravel 5.5中按范围价格和属性过滤产品

产品表:
id,名称,价格</ p>

属性表:\ nid,name,label,type {select or text} </ p>

attribute_values表:
id,attribute_id,name,label </ p>

attribute_product_attribute_value表(数据透视表) ):
产品_id,attribute_id,attribute_value_id,值</ p>

我的代码:</ p>

  if($ category = CategoryProduct :: getCategoryByValue('id  ',decode(equest()

  • &gt; input('category')))){ $ query = $ category-&gt; products() - &gt; where('price','&gt; =' , (int)equest() - &gt; input('min_price')) - &gt; where('price','&lt; =' ,(int)equest() - &gt; input(' max_price')) - &gt; whereHas('atts',function ($ query){ foreach(Input :: get('att_filter')as $ atts){ foreach($ atts as $ index =&gt ; $ value){ $ query-&gt; atts() - &gt;其中('att_id',decode($ index))
  • &gt; where('sub_att_id',decode($ value));

}
}

}) - &gt;获取 ();
</ code> </ pre>
</ div>

展开原文

原文

products table: id,name,price

attributes table: id,name,label,type{select or text}

attribute_values table: id,attribute_id,name,label

attribute_product_attribute_value table(pivot table): product_id,attribute_id,attribute_value_id,value

my code:

if ($category = CategoryProduct::getCategoryByValue('id', decode(equest()
   ->input('category')))) {
        $query = $category->products()->where('price', '>=', 
          (int)equest()->input('min_price'))->where('price', '<='
          , (int)equest()->input('max_price'))->whereHas('atts', function 
            ($query) {
           foreach (Input::get('att_filter') as $atts) {
             foreach ($atts as $index => $value) {
             $query->atts()->where('att_id', decode($index))
           - >where('sub_att_id', decode($value));

           }
    }

    })->get();

douhandie6615
douhandie6615 您是否可以包含输入数据的简短示例,以及您希望过滤器具有哪些效果?谢谢。
大约 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问