索纳塔路线参数重命名

时间:2016-09-12 09:18:50

标签: php symfony sonata-admin sonata

有没有办法在sonata-admin包中重命名路由参数? 当前的管理路由与entity/{id}/show类似,希望entity/{name}/show。 感谢。

2 个答案:

答案 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来重写你的网址

希望有所帮助

相关问题