【问题标题】:Laravel using an OR style combination in Route MiddlewareLaravel 在路由中间件中使用 OR 样式组合
【发布时间】:2017-04-14 11:04:36
【问题描述】:

我正在尝试在一个路由中使用多个中间件,如下所示

Route::get('devices', ['as' => 'devices.index', 'uses' => 'deviceController@index', 'middleware' => ['permission:manage_devices', 'permission:device.view']]);

这将在两个中间件之间实现AND 逻辑。我想实现一个“或”逻辑,但找不到任何帮助。

【问题讨论】:

  • 我不确定您是否能够做到这一点,因为中间件的工作方式类似于瀑布过程。我建议重构您的权限中间件,以便它可以接受多个参数以进行OR 比较。
  • 发布中间件文件的内容。我相信我们可以帮助您加入其中或提出其他建议。

标签: laravel laravel-routing laravel-middleware


【解决方案1】:

虽然这不是最有说服力的解决方案,但您可以尝试创建自己的中间件,在 if/else 或 switch 语句中加载其他中间件。这样你就可以实现你想要的行为。

查看以下链接中的文档,了解如何编写自己的中间件: https://laravel.com/docs/5.3/middleware#defining-middleware

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-09
    • 2022-01-11
    • 2016-06-03
    • 1970-01-01
    • 2018-05-16
    • 2015-08-17
    • 2012-06-05
    • 2021-09-28
    相关资源
    最近更新 更多