有没有可能重命名sonata-admin包中的路由参数?目前的管理路线是喜欢entity/{id}/show,想做entity/{name}/show。谢谢。
发布于 2016-09-12 18:08:29
我认为您可以在管理类中覆盖the getIdParameter method:
public function getIdParameter()
{
return 'name';
}发布于 2017-01-07 00:38:14
路由是通过管理类的configureRoutes方法配置的。
下面是我如何为我的‘EmailAdmin’的'send‘操作添加一个自定义路由:
protected function configureRoutes(RouteCollection $collection)
{
parent::configureRoutes($collection);
$collection->add('send', $this->getRouterIdParameter().'/send');
}add()的第一个参数是操作的名称,第二个参数是路由的路径。
这样,您就可以配置您的自定义路由,并且如果您清除了集合或不调用parent::configureRoutes,则可以重新定义所有默认路由。
更详细的信息来自奏鸣曲文档:https://sonata-project.org/bundles/admin/master/doc/reference/routing.html
更改id参数的解决方法可能是覆盖getIdParameter()并找到在CRUDController中自定义操作的方法,以便按名称查询项,甚至创建您自己的自定义操作和路由,以便您拥有完全控制权限
归根结底,实体总是通过它们(唯一的) id来查询的,因此,如果您想要将实体的名称作为url中的id参数,则需要将name属性设置为实体的标识符(当然,并使其唯一),或者使用apache mod_rewrite之类的东西重写您的url。
希望这能有所帮助
https://stackoverflow.com/questions/39447012
复制相似问题