在特定的路由范围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的主要内容,如果未能解决你的问题,请参考以下文章