CakePHP 4 HTML Helper 链接在前缀之外

问题描述 投票:0回答:1

我为应用程序的烹饪相关部分设置了前缀,并将控制器/视图移动到适当的“烹饪”目录中(例如,烹饪/食谱、烹饪/配料等)。

当我在其中一个视图中使用 HTML 帮助程序来访问此前缀之外的链接时,它仍然会将该前缀添加到 URL。

我使用以下内容创建了路由前缀:

$routes->setRouteClass(DashedRoute::class);
$routes->prefix('cooking', function (RouteBuilder $builder) {
    $builder->connect('/', ['controller' => 'Recipes', 'action' => 'index']);
    $builder->fallbacks();
});

当我使用 HTML 帮助程序在关联视图中创建链接时,它会添加前缀。例如,使用:

$this->Html->link(
    $recipe->user->name, ['controller' => 'Users', 'action' => 'view', $recipe->user->id]
);

生成

http://mysite.local/cooking/users/1
的链接,而不是不带前缀的
http://mysite.local/users/1
。如何转义前缀?

php cakephp
1个回答
0
投票

CakePHP 根据上下文自动添加前缀。 所以一定要加上

'prefix' => false

跳过或重置前缀上下文

新路线:

['prefix' => false, 'controller' => 'Users', 'action' => 'view', $recipe->user->id]
© www.soinside.com 2019 - 2024. All rights reserved.