您好,我正在尝试用laravel做一个小系统过滤,使用我的控制器中的以下函数来根据用户的角色或名称过滤用户,这是我当前的代码:
profilecontroller.php:
public function membrevis()
{
$filter = isset($_GET['filter']) ? $_GET['filter'] : null;
$users = DB::table('users')
->join('user_role', 'users.id', '=', 'user_role.user_id')
->join('roles', 'user_role.role_id', '=', 'roles.id')
->where('users.valid','=',0)
->select('users.*','roles.description');
if ($filter != null) {
$users->where('users.name','like','%'.$filter.'%')
->orWhere('roles.description',' like','%'.$filter.'%');
}
$users->get();
return view('membre2',['users'=> $users]);
}我的视图有一个输入表单,您可以在其中键入要筛选的成员的名称或角色:
membre2.blade.php:
<form action="/profilecontroller/membrevis" method="get">
<input type="text" name="filter" >
<button type="submit">filter</button>
</form>
@foreach($users as $users)
<h4 class="media-heading">{{ $users->name }}</h4>
@endforeach我得到的错误是Undefined property: Illuminate\Database\MySqlConnection::$name
我不知道为什么我会得到这个错误,我显然是用下面这行命令将$users传递给我的视图:
return view('membre2',['users'=> $users]);任何帮助都将不胜感激!谢谢
发布于 2018-06-09 04:06:01
使用$users->get()返回集合实例时,必须分配$users = $users->get();更正代码为
public function membrevis()
{
$filter = isset($_GET['filter']) ? $_GET['filter'] : null;
// also can use this structure $filter = isset($_GET['filter']) ?? null;
$users = DB::table('users')
->join('user_role', 'users.id', '=', 'user_role.user_id')
->join('roles', 'user_role.role_id', '=', 'roles.id')
->where('users.valid','=',0)
->select('users.*','roles.description');
if ($filter != null) {
$users->where('users.name','like','%'.$filter.'%')
->orWhere('roles.description',' like','%'.$filter.'%');
}
$users = $users->get();
return view('membre2',['users'=> $users]);
}同样在刀片式服务器中修复
@foreach($users as $user)
<h4 class="media-heading">{{ $user->name }}</h4>
@endforeachhttps://stackoverflow.com/questions/50767610
复制相似问题