在SonataBundle的CRUDController中有很多动作,例如listAction(),editAction()等。对于用户管理是链接:
http://site.local/app_dev.php/admin/sonata/user/user/list
和路线:
admin_sonata_user_user_list - /admin/sonata/user/user/list
我想为这个控制器添加自己的操作:列表第二操作();
我复制方法列表操作并将名称更改为列表第二操作。接下来我打开
http://site.local/app_dev.php/admin/sonata/user/user/listSecond
我有错误:
No route found for "GET /admin/sonata/user/user/listSecond"
那么,如何添加此操作以及该操作的路由位置?我应该如何进入此路由?
在你的管理类中,你必须添加配置路由方法:
protected function configureRoutes(RouteCollection $collection) {
$collection
->add('listSecond', 'listSecond')
->add('another', $this->getRouterIdParameter() . '/another');
;
}
在控制器中,您需要添加以下两个操作:
public function listSecondAction() {
// Your code here
}
public function anotherAction($id = null) {
// Here how to get the current object
$id = $this->get('request')->get($this->admin->getIdParameter());
$object = $this->admin->getObject($id);
// Your code here
}
希望这有帮助
请查看当前文档: http://sonata-project.org/bundles/admin/master/doc/reference/routing.html#create-a-route