CakePHP高级路由

时间:2011-05-25 19:36:39

标签: cakephp internationalization slug

如何创建这样的网址(默认为英文):

对于类别控制器中的操作index

  • /类别
  • / EN /类别
  • / DE /类别
  • ...

用于类别控制器中的操作view

  • /类别/ englishslug
  • / DE /类别/ deutshslug

2 个答案:

答案 0 :(得分:1)

文章中缺少的是Router::connect()中有用的persist功能。
这将为所有生成的URL添加语言参数。

示例路线:

Router::connect(
  '/:language/:controller',
  array(),
  array('language' => '[a-z]{2}', 'persist' => array('language'))
);
Router::connect('/:language/:controller/:action/*', array(), array('language' => '[a-z]{2}', 'persist' => array('language')));

答案 1 :(得分:0)

这正是CakePHP中的自定义路由。您可以定义自己的路由器类,为您处理所有逻辑,并在运行调度程序之前减轻所有内容。我最近通过参考Mark Story自己的博客文章完成了你想要做的事情:http://mark-story.com/posts/view/using-custom-route-classes-in-cakephp