Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 根据用户在laravel上的角色筛选用户的小系统_Php_Mysql_Sql_Laravel_Laravel 5 - Fatal编程技术网

Php 根据用户在laravel上的角色筛选用户的小系统

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

我试图在我的控制器中实现一个功能,以按角色筛选应用程序的用户

My controller ProfileController.php具有以下功能:

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语句声明的符号。在这种情况下,您会得到一个错误,因为
,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]);
 }