在特定的路由范围cakephp中调用中间件3

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在特定的路由范围cakephp中调用中间件3相关的知识,希望对你有一定的参考价值。

我创建了一个自定义中间件,并尝试在cakephp 3.5.x中的Cases下的特定路由范围中使用,

需求:

routes.php文件

use ApiMiddlewareCasesMiddleware;

Router::scope('/', function (RouteBuilder $routes) {

    $routes->registerMiddleware('CasesRequired', new CasesMiddleware());

    Router::scope('/Cases', function (RouteBuilder $routes) {
        $routes->applyMiddleware('CasesRequired');
    }
}

但这不起作用。但是,当我把$routes->applyMiddleware('CasesRequired'),外部路由范围cases然后它的工作如下,

Router::scope('/', function (RouteBuilder $routes) {

    $routes->registerMiddleware('CasesRequired', new CasesMiddleware());
    $routes->applyMiddleware('CasesRequired');

    Router::scope('/Cases', function (RouteBuilder $routes) {

    }
}

请建议出现问题的原因.......只能在路由范围Cases下调用中间件。

答案
use ApiMiddlewareCasesMiddleware;

Router::scope('/', function (RouteBuilder $routes) {

    $routes->registerMiddleware('CasesRequired', new CasesMiddleware());

    $routes->scope('/Cases', function ($routes) {
        $routes->applyMiddleware('CasesRequired');
    }
}

以上是关于在特定的路由范围cakephp中调用中间件3的主要内容,如果未能解决你的问题,请参考以下文章

Cakephp 3 带有语言参数的路由

CakePHP - 从插件加载路由文件

如何在中间件中将 bodyParser 上传限制设置为特定路由而不是全局?

CakePHP 3.x - 仅在前缀中的扩展路由器

Cakephp 3:Json 渲染视图不起作用

如何为现有的 CakePHP (2) 项目添加新的 url 路由