我在这里做的事可能很蠢,但我是新手,
我正在使用查询对数据库应用搜索筛选器。
查询正在使用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();