有没有办法在sonata-admin包中重命名路由参数?
当前的管理路由与entity/{id}/show
类似,希望entity/{name}/show
。
感谢。
答案 0 :(得分:1)
我认为您可以在管理类中覆盖the getIdParameter
method:
public function getIdParameter()
{
return 'name';
}
答案 1 :(得分:0)
路由是根据管理类的configureRoutes
方法配置的。
以下是我为“发送”添加自定义路线的方法。我的电子邮件管理员的行动':
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来重写你的网址
希望有所帮助