繁体   English   中英

Laravel从具有一个或多个类别的数据库中获取数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM