【发布时间】:2018-10-29 20:05:16
【问题描述】:
Table 1: products: id,title
Table 2: features: id,name,values
Table 3:feature_product:id,product_id,values
当我在feature_product 表中搜索values 时,我想获得所有相关产品。
我做这些:
在产品型号中:
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()
{
// ???
}
【问题讨论】:
-
您必须在两个模型中定义
belongsToMany()关系。两者都一样,只需更改其中的模型名称即可。 -
你的问题解决了吗?
-
@NaveedAli 是的,有这个:
$query->WhereHas('features' , function ($query) use ($q){$query->where('feature_product.values' , 'LIKE' , '%' . $q . '%' );});。你的评论对我有帮助。
标签: laravel laravel-5 eloquent laravel-query-builder