我有一张这样的表:
Table: item
isBeautiful: Boolean
isGreat: Boolean
isAvaliable: Boolean
我想与Eloquent进行查询,该查询为我提供了所有可用的项目,可以是isBeautiful或isGreat,或两者兼而有之。
$avaliableitems = item::where("isAvaliable,1)
->where("isBeautiful",1)
->orWhere("isGreat",1)->get();
这是伪代码,我知道它不起作用。
我知道我总是可以获得isavaliable = 1的项目,然后遍历每个项目并执行:
foreach($avaliableitems as $avaliableitem){
if($avaliableitem->isBeautiful == 1 || $avaliableitem->isGreat){
//do things
}
}
但我想知道如果有一种方法可以像前面提到的那样使用Eloquent。
答案 0 :(得分:1)
你可以近距离使用。
item::where('isAvaliable', 1)
->where('t_Id', 2)
->where(function($q) {
$q->where('isBeautiful', 1)
->orWhere('isGreat', 1);
})->get();
答案 1 :(得分:1)
Laravel的查询构建器也接受Closure。
所以,这样的事情应该有效:
$availableItems = item::where('isAvailable',1)
->where(function($query)) {
$query->whereNull('isBeautiful', 1)
->orWhere('isGreat', 1)
})
->get();