【问题标题】:CakePHP-3.5.4 - Reverse routing not working as expectedCakePHP-3.5.4 - 反向路由未按预期工作
【发布时间】:2017-11-01 06:32:53
【问题描述】:

在我的 routes.php 文件中我定义:

Router::prefix('admin', function ($routes) {
    $routes->connect(
        '/',
        [
            'plugin' => false,
            'controller' => 'Users',
            'action' => 'dashboard'
        ],
        ['_name' => 'admin_dashboard']
    );
    $routes->fallbacks(DashedRoute::class);
});

在控制器中,我这样做:

debug(Router::url(['_name' => 'admin_dashboard']));

它打印出/admin,这是正确

但是,如果在同一个控制器中,我这样做:

debug(Router::url([
    'prefix' => 'admin',
    'plugin' => false,
    'controller' => 'Users',
    'action' => 'dashboard'
]));

它打印出/admin/users/dashboard,这是不正确,至少我认为它会打印/admin

为了使反向路由正常工作,我是否遗漏了什么?

我正在使用 CakePHP 3.5.4

【问题讨论】:

    标签: cakephp routes url-routing cakephp-3.0


    【解决方案1】:

    plugin 键实际上并不支持布尔值,该值应该是带有插件名称的字符串,或者 null 表示不应使用任何插件。

    使用false 将导致路由不匹配,而是被备用路由捕获,因此您最终会得到/admin/users/dashboard URL。

    另见

    【讨论】:

      猜你喜欢
      • 2011-08-30
      • 2019-08-09
      • 2014-05-02
      • 2019-05-27
      • 2016-08-19
      • 2015-09-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多