【问题标题】:Laravel 5 - Defining middleware for multiple routes in controller fileLaravel 5 - 在控制器文件中为多个路由定义中间件
【发布时间】:2015-02-21 11:21:51
【问题描述】:

堆垛机! 我目前正在学习 laravel5,我喜欢它,但我正在为一件事而苦苦挣扎。从 Laravel 5 开始,我们有了可以在控制器的构造函数中使用的中间件,如下所示:

控制器文件:

public function __construct()
{
    $this->middleware('admin', ['only' => 'create']);
}

现在我想要定义 HERE^(不在路由文件中)中间件以在多个视图中使用,例如“创建”、“编辑”和“显示”。定义

public function __construct()
{
            $this->middleware('admin', ['only' => 'create|edit|show']);
}

不幸的是,它不起作用。我宁愿不使用路线。亲爱的朋友们有什么想法吗?

【问题讨论】:

  • 嗨,我如何将它用于两个角色,假设管理员可以访问所有方法,而经理只能访问创建、编辑、显示我该怎么做?如何为类似的东西编写中间件。

标签: php laravel controller views middleware


【解决方案1】:

只需传递一个数组而不是带有| 分隔符的字符串:

public function __construct()
{
    $this->middleware('admin', ['only' => ['create', 'edit', 'show']]);
}

【讨论】:

  • 嗨,我如何将它用于两个角色,假设管理员可以访问所有方法,而经理只能访问创建、编辑、显示我该怎么做?如何为类似的东西编写中间件。
  • @ChanukaAsanka 只需拨打两次$this->middleware()
  • ok .. 你的意思是我应该有两个名为 Admin & Manager 的中间件。但我不知道如何在句柄方法中处理它.. public function handle($request, Closure $next) { if (\Auth::user()->role == 'Manager') { return true; } 返回 $next($request);你能提供例子吗?基本上我不需要为经理授予删除权限
  • @ChanukaAsanka 这与这个问题不再相关。请自己提问
  • 当然我会发帖的。感谢回复
猜你喜欢
  • 1970-01-01
  • 2017-01-14
  • 1970-01-01
  • 1970-01-01
  • 2015-10-24
  • 2017-12-18
  • 1970-01-01
  • 2017-03-11
  • 2016-03-14
相关资源
最近更新 更多