我在CakePHP中尝试管理路由时有点走投无路。我几乎阅读了www上的每一篇文章,其中一些文章接近我的需求,但与其他文章结合使用并没有达到预期效果。也尝试了一些路由器lib-s,但相同的
这是我需要的:
url中的语言参数和一段页面。因此:
用于前端
目录"/"应指向默认语言
controller
=>pages
、slug
=>home
/:lang-与上面相同,但使用选定的语言
/:段塞-
controller
=>pages
、action
=>index
并传递:slug
参数,使用默认语言/:lang/:slug-与上面设置的lang参数相同
/:控制器/:段塞-
/:lang/:controller/:slug-与上面设置的lang参数相同
- 在这些链接中我不需要任何
action
-用于管理面板
/admin-"控制器"=>'设置','操作'=>'索引
/admin/:controller/:action/。。。。这是默认的
- 管理url中不需要语言参数,但存在操作,除了索引操作
此外,我应该如何在视图中创建链接,以便路由器正常工作?
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路由。