Php Laravel 5-角色权限

Php Laravel 5-角色权限,php,laravel,laravel-5,Php,Laravel,Laravel 5,我尝试建立自己的许可系统。但是,如果用户没有特定的角色,他们就无法访问页面,那么代码就会出现问题 这是我的密码: public function compose($view) { $roleid = Session::get('role_id'); $userid = Session::get('user_id'); $additional_role = Session::get('additional_role'); $roles = explode(';',

我尝试建立自己的许可系统。但是,如果用户没有特定的角色,他们就无法访问页面,那么代码就会出现问题

这是我的密码:

public function compose($view)
{
    $roleid = Session::get('role_id');
    $userid = Session::get('user_id');
    $additional_role = Session::get('additional_role');

    $roles = explode(';', $additional_role);

    $segment = Request::segment('1');

    $joins = [];
    foreach ($roles as $role) 
    {
        $query = DB::table('roles')->where('id', $role)->first();
        $joins[] = $query->link;

    }


    foreach($joins as $join) {
        var_dump($join); var_dump($segment);

        if ($join == $segment) 
        {
              return redirect($segment);
        } 
        else
        {
            return redirect('/');
        }   
    }         



}
我在一个编写器中编写代码,这样我就可以继续启动它。但是我不能让它工作,即使用户没有他们没有重定向到“/”的角色


有什么办法使它起作用吗?所以他们不会进入页面,如果他们有这个角色,他们会进入页面。

你在哪里有这个逻辑

我认为在l5中,权限和身份验证逻辑的最佳位置是“Http/中间件”, 在那里,您可以添加包含handle方法和逻辑的文件,然后必须编辑kernel.php

protected $routeMiddleware = [
        'auth'          => 'App\Http\Middleware\Authenticate',
        'auth.basic'    => 'Illuminate\Auth\Middleware\AuthenticateWithBasicAuth',
        'guest'         => 'App\Http\Middleware\RedirectIfAuthenticated',
        'test'          => 'App\Http\Middleware\yourFile',
    ];
您可以在此处查看laravel acl的优秀解决方案:


然后,您可以轻松地将您的角色权限设置为@limonte hi的可能副本。谢谢你的回复。不。此应用程序仅用于后端,因此没有前端用户,我已将所有require表更改为staff。所有的登录都很好。我试着加入并分段,他们都按我的意愿返回。当我试着比较结果时,问题是我没有进入其中。