CakePHP 2.x - 自定义路由

时间:2014-03-19 21:47:26

标签: cakephp routing routes cakephp-2.0

我有两个控制器:ArtistsController和RecordsController

我想根据用户的行为逻辑地订购路线。

在这种情况下,一旦用户正在编辑艺术家(/ artists / edit / some-artist),他就可以为该艺术家添加一些记录。

所以,我喜欢这样的路线: 的 " /艺术家/编辑/一些/艺术家/记录/添加"

与记录的编辑功能相同:
" /艺术家/编辑/一些艺术家/记录/编辑/一些记录"

我已经和它斗争了一段时间,但我之前从未使用过RoutePHP上的Routes,并且无法找到解决方案。这可能吗?感谢

1 个答案:

答案 0 :(得分:3)

Config / routes.php

Router::connect('/artists/edit/:some_artist', array('controller' => 'artists', 'action' => 'edit'), array('pass' => array('some_artist')));
Router::connect('/artists/edit/:some_artist/:records', array('controller' => 'artists', 'action' => 'edit'), array('pass' => array('some_artist','records')));

然后你继续了解你想要传递的参数。

规则很简单:需要传递一些变量,在它之前加上冒号“:”,并在数组'pass'中添加它的名字。

如果你想指定传递元素的类型,我建议你阅读Routing: Route elements

此外艺术家控制器功能应该是这样的

public function edit($some_artist=null,$records = null) {
/**
[...]
*/
}