![](/img/trans.png)
[英]Laravel multiple select filter for categories, only get one select as output
[英]Laravel get data from database that has one or multiple categories
我试图做一个筛选器,但取得了一些成功,但不是我想要的。
代码是这样的:
public function scopeSearch( $query , $search )
{
if ( isset( $search['facility'] ) ) {
$facilities = $search['facility'];
$query->whereHas( 'facility' ,
function ( $q ) use ( $facilities ) {
$q->where( 'facility_id' , $facilities );
}
);
}
return $query;
}
Facilities变量是一个数组。
它需要做的是退还一个或多个拥有我选择的设施的公寓(或拥有更多设施但也具有所选设施的公寓),但是我却获得了拥有以下设施的公寓:公寓至少有1个设施。
我需要怎么做才能退还拥有所选设施的公寓?
似乎您可能需要使用foreach()
数组,以确保它具有数组的所有成员:
$facilities = $search['facility'];
foreach( $facilities as $one_facilities ){
$query->whereHas( 'facility' ,
function ( $q ) use ( $one_facilities ) {
$q->where( 'facility_id' , $one_facilities );
}
);
}
如果您只想在某些设施上进行匹配(例如,返回选择了3个设施中的2个的结果orWhere()
则可能还需要使用orWhere()
)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.