我有两个控制器:ArtistsController和RecordsController
我想根据用户的行为逻辑地订购路线。
在这种情况下,一旦用户正在编辑艺术家(/ artists / edit / some-artist),他就可以为该艺术家添加一些记录。
所以,我喜欢这样的路线: 的 " /艺术家/编辑/一些/艺术家/记录/添加"
与记录的编辑功能相同:
的 " /艺术家/编辑/一些艺术家/记录/编辑/一些记录"
我已经和它斗争了一段时间,但我之前从未使用过RoutePHP上的Routes,并且无法找到解决方案。这可能吗?感谢
答案 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) {
/**
[...]
*/
}