我有点陷入死胡同试图在CakePHP中使用我的路线。我几乎阅读了www中的每篇文章,其中一些文章接近我需要的内容,但与其他文章结合起来并没有按预期工作。还尝试了一些路由器lib-s,但是相同的
这就是我需要的:
url中的语言参数和页面的slug。所以:
前端的
目录'/'应该是默认语言,
controller
=>pages
,slug
=>home
/:lang - 与上述相同,但选择语言
/:slug -
传递controller
=>pages
,action
=>index
并使用默认语言:slug
参数/:lang /:slug - 与上面的set lang参数
相同/:controller /:slug -
/:lang /:controller /:slug - 与上面的set lang参数
相同管理面板的
- 我在这些链接中不需要任何
action
-
/ admin - 'controller'=> 'settings','action'=> '索引'
/ admin /:controller /:action / ....这一个是默认的
- 管理网址中不需要语言参数,但操作存在,除了索引操作
另外我应该如何在视图中创建链接,以便路由器能够正常工作?
答案 0 :(得分:1)
Router::connect("/admin", array('action' => 'index', 'controller' => 'settings', 'prefix' => 'admin', 'admin' => true));
Router::connect("/admin/:controller", array('action' => 'index', 'prefix' => 'admin', 'admin' => true));
Router::connect("/admin/:controller/:action/*", array('prefix' => 'admin', 'admin' => true));
Router::connect("/:language/*", array('action' => 'home', 'controller' => 'pages'));
Router::connect("/:language/:controller", array('action' => 'index'));
Router::connect("/:language/:controller/*");
你可以复制第二组路线,但是改变:语言到slug,你应该把它放在if中并验证给定的语言,如果它没有验证然后加载slug路线。