Php 根据用户在laravel上的角色筛选用户的小系统
我试图在我的控制器中实现一个功能,以按角色筛选应用程序的用户 My controller ProfileController.php具有以下功能:Php 根据用户在laravel上的角色筛选用户的小系统,php,mysql,sql,laravel,laravel-5,Php,Mysql,Sql,Laravel,Laravel 5,我试图在我的控制器中实现一个功能,以按角色筛选应用程序的用户 My controller ProfileController.php具有以下功能: public function membrevis() { $filter = isset($_GET['filter']) ? $_GET['filter'] : null; $users = DB::table('users') ->join('user_role', 'user.id', '=', 'u
public function membrevis() {
$filter = isset($_GET['filter']) ? $_GET['filter'] : null;
$users = DB::table('users')
->join('user_role', 'user.id', '=', 'user_role.user_id')
->join('roles', 'users_roles.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('member2',['users'=> $users]);
}
My view membre2.blade.php包含以下HTML代码:
<form action="/membre2" method="get">
<input type="text" name="filter" >
<button type="submit">filter</button>
</form>
任何帮助都将不胜感激 您缺少一个
if
语句中的code>
public function membrevis() {
$filter = isset($_GET['filter']) ? $_GET['filter'] : null;
$users = DB::table('users')
->join('user_role', 'user.id', '=', 'user_role.user_id')
->join('roles', 'users_roles.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('member2',['users'=> $users]);
}
缺少代码>在->或where('roles.description'、'like'、'%'.$filter.'%')之后(
带有更新缩进的代码
public function membrevis()
{
$filter = isset($_GET['filter']) ? $_GET['filter'] : null;
$users = DB::table('users')
->join('user_role', 'user.id', '=', 'user_role.user_id')
->join('roles', 'users_roles.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('member2',['users'=> $users]);
}
缩进使代码更具可读性。缩进有不同的样式。你可以通过更好地理解它们。你应该看看
只有当第一个参数的计算结果为true时,才会应用when()闭包中的指令,这样您就可以编写复杂的条件指令,而不必中断查询链
如果没有帮助,您应该提供有关erorr的更多信息。这是一个常见错误,这意味着PHP语法分析器需要的是一个令牌,而不是error语句声明的符号。在这种情况下,您会得到一个错误,因为缺少code>,PHP解析器遇到的是}
而不是代码>强烈建议使用诸如phpcs的过梁
public function membrevis()
{
$filter = isset($_GET['filter']) ? $_GET['filter'] : null;
$users = DB::table('users')
->join('user_role', 'user.id', '=', 'user_role.user_id')
->join('roles', 'users_roles.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('member2',['users'=> $users]);
}
public function membrevis() {
$filter = isset($_GET['filter']) ? $_GET['filter'] : null;
$users = DB::table('users')
->join('user_role', 'user.id', '=', 'user_role.user_id')
->join('roles', 'users_roles.role_id', '=', 'roles.id')
->where('users.valid','=',0)
->when($filter, function ($query) use ($filter) {
return $query->where('users.name','like','%' . $filter . '%')
->orWhere('roles.description','like','%' . $filter . '%');
})
->select('users.*','roles.description')
->get();
return view('member2',['users'=> $users]);
}