Laravel 5.1查询范围

时间:2015-10-11 19:11:53

标签: php mysql laravel scope

这是我的范围代码:

public function scopeTest($query, $text, $usrId)
{
    if (trim($text) != "") {
        return $query->where("usrid", "=" ,"$usrId")->where("text1", "LIKE" ,"%$text%")->orWhere("text2", "LIKE" ,"%$text%");
    }else{
        return $query->where("usrid", "=" ,"$usrId");
    }
}

我无法构建此查询:

select * from table where usrid = $usrId and (text1 like '%$text%' or text2 like '%$text%');

因为“或”条件无效。

1 个答案:

答案 0 :(得分:0)

Use a closure to create a group

$query->where('usrid', $usrId)->where(function ($query) use ($text) {
   $like = "%{$text}%";

   $query->where('text1', 'LIKE', $like)->orWhere('text2', 'LIKE' ,$like); 
});