CakePHP 2.x-自定义路由

CakePHP 2.x-自定义路由,cakephp,routing,routes,cakephp-2.0,Cakephp,Routing,Routes,Cakephp 2.0,我有两个控制器:ArtistsController和RecordsController 我想根据用户正在做的事情逻辑地订购路由 在这种情况下,一旦用户编辑艺术家(/artists/edit/some Artist),他就可以为该艺术家添加一些记录 所以,我希望路线是这样的: “/artists/edit/some/artist/records/add” 记录的编辑功能也是一样: “/artists/edit/some artist/records/edit/some record” 我已经和它斗

我有两个控制器:ArtistsController和RecordsController

我想根据用户正在做的事情逻辑地订购路由

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

所以,我希望路线是这样的: “/artists/edit/some/artist/records/add”

记录的编辑功能也是一样:
“/artists/edit/some artist/records/edit/some record”


我已经和它斗争了一段时间,但我以前从未在CakePHP上使用过Routes,因此找不到解决方案。这可能吗?感谢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”中

如果要指定传递元素的类型,我建议阅读

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

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