【发布时间】:2018-06-10 10:31:55
【问题描述】:
我正在使用带有参数分组的高级 where 子句。这是示例
$users = User::where('role', 'admin')
->where(function ($query){
$query->orWhere('id', 'LIKE', "%$keyword%")
->orWhere('email', 'LIKE', "%$keyword%")
->orWhere('name', 'LIKE', "%$keyword%")
->paginate($perPage);
});
return view('admin.index', compact('users'));
这部分给了我一个错误:未定义的变量:关键字
然后我在网上搜索,发现要像这样添加 use($keyword, $perPage)
$users = User::where('role', 'admin')
->where(function ($query) use($keyword, $perPage){
$query->orWhere('id', 'LIKE', "%$keyword%")
->orWhere('email', 'LIKE', "%$keyword%")
->orWhere('name', 'LIKE', "%$keyword%")
->paginate($perPage);
});
然后它在我的视图文件中显示错误
调用未定义的方法 Illuminate\Database\Query\Builder::appends()
throw new BadMethodCallException("调用未定义的方法 {$className}::{$method}()");
这是导致 index.blade.php 错误的行
{{ $users->appends(['search' => Request::get('search')])->links("pagination::bootstrap-4") }}
在添加 use($keyword, $perPage) 之前不存在此错误
【问题讨论】:
标签: php laravel laravel-5 where-clause