Laravel Route::管理员组

标签 laravel routes admin

如果用户是管理员,我想验证一些路由。

Route::get( '/user/{data}', 'UserController@getData' );
Route::post( '/user/{data}', 'UserController@postData' );

现在,我在 Controller 中完成了它:

public function getData( $data = 'one' )
{
    if ( Auth::user()->permission == 'admin' ) {
        //...
    } else {
        //...
    }
}

public function postData( Request $request, $data = 'one' )
{
    if ( Auth::user()->permission == 'admin' ) {
        //...
    } else {
        //...
    }
}

我想用 Route::group 来实现,但是如何在 paths.php 中做到这一点?

最佳答案

您可以create middleware这将检查用户是否是管理员:

class IsAdmin
{
    public function handle($request, Closure $next)
    {
        if (Auth::user()->permission == 'admin') {
            return $next($request);
        }

        return redirect()->route('some.route'); // If user is not an admin.
    }
}

Kernel.php中注册:

protected $routeMiddleware = [
    ....
    'is.admin' => \App\Http\Middleware\IsAdmin::class,
];

然后将其应用到路由组:

Route::group(['middleware' => 'is.admin'], function () {
    Route::get('/user/{data}', 'UserController@getData');
    Route::post('/user/{data}', 'UserController@postData');
});

关于Laravel Route::管理员组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39555865/

相关文章:

asp.net - 同一主机名下的多个站点可能吗?

php - 检查模型是否存在,如果在 Laravel 中没有找到则继续路由

python - Debian 上的 Django 管理目录

php - 如何保存到数据库中

php - 检查 laravel 模型是否已保存或查询是否已执行

javascript - 如何获取并提交购物车中选中的商品?

javascript - 垃圾邮件可以看到/使用 javascript 吗?

ruby-on-rails - 在 Rails 嵌套路由中使用实体名称而不是 ID

java - 在我的网络应用程序中创建一个只有我可以访问的网页

css - django 将背景图片添加到管理站点