1

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

我想为这个控制器添加自己的操作:listSecondAction();

我复制方法 listAction 并将名称更改为 listSecondAction。接下来我打开

http://site.local/app_dev.php/admin/sonata/user/user/listSecond

我有错误:

No route found for "GET /admin/sonata/user/user/listSecond"

那么我该如何添加这个动作的路由以及在哪里路由呢?我应该如何进入这个路由?

4

2 回答 2

2

在您的管理类中,您必须添加 configureRoutes 方法:

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
}

希望这可以帮助

于 2013-09-12T13:19:24.393 回答
1

请查看当前文档:http ://sonata-project.org/bundles/admin/master/doc/reference/routing.html#create-a-route

于 2013-09-12T13:20:36.423 回答