Laravel控制器中间件过滤多个步骤?

时间:2015-08-23 15:26:09

标签: laravel-5.1 laravel-middleware

用户创建帐户后,按以下顺序重定向

  1. 注册公司
  2. 上传徽标
  3. 上传封面
  4. 连接条纹
  5. 常规设置
  6. 优惠券设置
  7. 付费订阅
  8. 我有一个OwnerController.php,它由与公司相关的所有控制器扩展。在其中我应用了两个中间件  1. hasAccess - 检查用户是否登录  2. registrationComplete - 检查上述所有7个步骤是否都已完成。这样我知道用户已准备好使用该应用程序并且他们的个人资料是实时的。

    以下是我应用registrationComplete中间件

    的方法
    $this->middleware('registrationComplete', ['except' => [
    'registerView', 'registerPost', 
    ..... 
    'editView' - the view method to update general settings from GeneralSettingsController
    'editPost' - same as above except is the post method for same controller
    ]]);
    

    问题是,在整个应用程序的其他控制器中,我有其他方法名称相同,如果用户更改地址栏中的URL,他们可以在完成注册过程之前访问受限区域。

    我知道我可以在每条路线或分组路线上应用它,但我有数百条路线,而且这不是一个选项。

    我想要做的是在中间件的except方法中添加控制器名称。实施例

    $this->middleware('registrationComplete', ['except' => 
    'Modules\Settings\Controllers\GeneralSettings@editView',
    'Modules\Settings\Controllers\GeneralSettings@editPost'
    .....
    

    知道如何实现这一目标吗?

    谢谢

0 个答案:

没有答案