Table 1: products: id,title
Table 2: features: id,name,values
Table 3:feature_product:id,product_id,values
当我在values
表的feature_product
中进行搜索时,我希望获得所有相关产品。
我这样做:
在产品型号中:
public function features()
{
return $this->belongsToMany(Feature::class)->withPivot('values');
}
public function feature()
{
// ???
}
并查询搜索内容:
$q = 'yellow';
$query->where(function($query) use ($q)
{
$query->WhereHas('feature' , function ($query) use
($q){$query->where('values' , 'LIKE' , '%' . $q . '%' );});
}
如何搜索产品的相关功能? (并获得这些产品)
我认为我必须在产品模型的此功能中做些事情:
public function feature()
{
// ???
}
答案 0 :(得分:1)
在产品型号中:
public function features()
{
return $this->belongsToMany(Feature::class)->withPivot('values');
}
public function feature()
{
// ??
}
在特征模型中:
public function products(){
return $this->belongsToMany('App\Product')->withPivot('values');
}
和查询搜索
$query->WhereHas('features' , function ($query) use ($q) {
$query->where('feature_product.values' , 'LIKE' , '%' . $q . '%' );
});