在 Laravel 5 中创建管理员区域界面的最佳实践

Best practice for creating administrator area interface in Laravel 5

我最近开始学习Laravel 5,我需要在站点内创建一个单独的管理员区域。

我已经尝试了很多来获取文件目录结构,但我得到的大部分都是 Laravel 4 而不是 Laravel 5.

因为 Laravel 5 与 Laravel 4 的结构不同。

任何人都可以帮助我如何设置管理员区域和路由的目录结构。

提前致谢。

我最近在 Laravel 5 中使用管理区域创建了一个项目。我曾使用高级 ACL(访问控制层)来授予角色明智的管理员权限。为此,我使用了 Entrust Package。然后我使用了 Laravel 5 的基本身份验证并实现了 Entrust.

我已经轻松创建了具有所有权限的管理区域。我还尝试在 Authenticate.php 中间件

中设置自动权限

你可以参考这个堆栈问题,我问过。但后来我找到了解决办法。 我建议您遵循基于 URL 的体系结构,然后使用旧的文件夹结构方式来管理管理员。 Laravel 5 最适合基于 URL,如果您将来需要移动应用程序,它还可以帮助您创建任何 API。

希望对您有所帮助。

我通常使用 entrust 之类的软件包和满足我需要的随机 bootstrap 模板来制作自己的后端。
然后我将我的视图放在 views/admin 中,将我的控制器放在 Controller/admin 中,并将所有管理路由放在一个组中,并附加一个中间件

    Route::group(['namespace'=>'Admin','prefix'=>'admin','middleware'=>'role','role'=>'admin'],function(){
        Route::get('/','HomeController@index');
}

然后在中间件中(这是使用entrust)。

public function handle($request, Closure $next)
    {
        $user = $this->auth->user();
        $route = $request->route();
        if($user && $route)
        {
            $actions = $route->getAction();
            if(array_key_exists('role',$actions)) {
                $role=$actions['role'];
                if(!$user->hasRole($role)) {
                    Flash::error('Unauthorized Access');

                    abort(401);
                }
            }
            else
            {
                Flash::error('Unauthorized Access');
                abort(401);
            }
        }
        else
        {
            Flash::error('Unauthorized Access');
            abort(401);
        }
        return $next($request);
    }

不要忘记在路由文件旁边的 kernel.php 中注册中间件。

中间件可能看起来很复杂,但它只是检查您是否在您的组中放置了一个角色,然后检查当前登录的用户是否属于该组。

还请记住,当您使用 action() 进行路由时,您需要将管理命名空间放在控制器名称之前,例如 action('Admin\HomeController@index')