我在这里做的事可能很蠢,但我是新手,
我正在使用查询对数据库应用搜索筛选器。
查询正在使用javascript构建并传递给laravel函数。
例如。

window.open("/filterResults?types="+types);
//types contains a string like "international#global#europe#  etc

现在在Controller中,我得到了字符串types并将其分解成这样的查询
    $tquery = "Where('type',".$typesArray[0].")";
    for($offset=1; $offset < count($typesArray); $offset++) {
        $tquery .= "->orWhere('type', ".$typesArray[$offset].")";
    }

执行这样的查询
$firms = Firm::$tquery->get();

它给了我错误
Access to undeclared static property: App\Firm::$tquery

我怎么能做我想做的。
注:类型是复选框,其中一些可以选中或全部选中。

最佳答案

最好使用whereIn()方法:

$firms = Firm::whereIn('type', $typesArray)->get();

但如果你需要用你的方式,你可以这样做:
$firm = new App\Firm;

foreach ($typesArray as $type) {
    $firm = $firm->orWhere('type', $type);
}

$firms = $firm->get();

09-29 22:21