Php laravel组合查询生成器

Php laravel组合查询生成器,php,mysql,laravel,Php,Mysql,Laravel,我的查询中有错误吗?您的查询中没有错误,但是您必须扩展在extended where中使用的变量的范围(请参阅第一行代码中的更改),您应该添加use()和内部使用的所有变量,以将其范围扩展到闭包 $lists = Users::where ( function ( $query ) { $query->where('login_username','like','%'.$username.'%') ->or_wher

我的查询中有错误吗?

您的查询中没有错误,但是您必须扩展在extended where中使用的变量的范围(请参阅第一行代码中的更改),您应该添加use()和内部使用的所有变量,以将其范围扩展到闭包

$lists = Users::where ( function ( $query ) {
              $query->where('login_username','like','%'.$username.'%')
                    ->or_where("phoneno", "LIKE", '%'.$username.'%');
         })->whereBetween('dateofjoining',array($fromDate, $toDate))  
         ->paginate(5);

问题在于您的where条件,
只需将您的代码替换为以下代码:

$lists = Users::where ( function ( $query ) use ($username) {
              $query->where('login_username','like','%'.$username.'%')
                    ->or_where("phoneno", "LIKE", '%'.$username.'%');
         })->whereBetween('dateofjoining',array($fromDate, $toDate))  
         ->paginate(5);

我已经在下面添加了答案,请检查。
$lists = Users::where ( function ( $query ) use ($username) {
              $query->where('login_username','like','%'.$username.'%')
                    ->or_where("phoneno", "LIKE", '%'.$username.'%');
         })->whereBetween('dateofjoining',array($fromDate, $toDate))  
         ->paginate(5);
$lists = Users::where ( function ( $query ) USE ($username) {
              $query->where('login_username','like','%'.$username.'%')
                     ->orWhere('phoneno', "LIKE", '%'.$username.'%');
         })->whereBetween('dateofjoining',array($fromDate, $toDate))  
         ->paginate(5);