3

我一直在设置一些这样的路线:

Router::connect('/background/a-page', array('controller' => 'background', 'action' => 'a_page'));
Router::connect('/background/another-page', array('controller' => 'background', 'action' => 'another_page'));
Router::connect('/background/my-third-page', array('controller' => 'background', 'action' => 'my_third_page'));
// More routes here

我想用这样的路线替换它们:

Router::connect('/background/:action', array('controller' => 'background'));

url/background/my-third-page将映射到操作的位置my_third_page(在后台控制器中)。请注意,网址有破折号,动作有下划线。

目前 Cake 无法映射从破折号到下划线的转换,所以我的新路线失败了: /background/my-third-page但这有效:/background/my_third_page

我想在网址中保留破折号。有什么方法可以让 Cake 将破折号映射到下划线?

我还希望反向路由从下划线映射到破折号,所以:

$this->Html->link('View',
    array('controller' => 'background', 'action' => 'my_third_page')
);

将映射到:background/my-third-page.

谢谢!

4

1 回答 1

0

这违背了 CakePHP 的 URL 命名约定http://book.cakephp.org/2.0/en/getting-started/cakephp-conventions.html。你最好对这类事情使用 mod rewrite - 再一次,因为这与通常在 cake 中完成 URL 的方式背道而驰,所以 cake 会与你战斗。 http://book.cakephp.org/2.0/en/installation/url-rewriting.html可能会给你一些关于你想做的事情的想法。

前段时间我问了一个相关的问题。 是否可以使用 Route::Connect 路由到查询字符串参数?

于 2013-09-11T14:35:00.617 回答