Sonata管理员操作按钮到预筛选列表



我是Symfony的新手(2周),请原谅我的无知。

我正在尝试添加一个自定义操作按钮,该按钮将链接到相关实体的预筛选列表。我做了很多研究,但似乎找不到我需要的东西。

目前,我有两个实体Books和Authors,它们之间有着多对一的关系。我以通常的方式在Sonata Admin中设置了这些,一切都很好。我甚至在书单页面上有一个作者过滤器,我希望可以利用它来实现我的目标。

在"作者"列表视图中,我想在"查看和编辑"旁边的每行添加一个操作按钮,名为"按作者查看书籍"。我可以获得按钮,但无法正确构建URL。

我有3个路由问题:

1) 我正在尝试在我的按钮模板中使用admin.generateObjectUrl()或类似的方法来干净地构建一个管理URL,但无法获得到备用实体的路径。在我的情况下,由于我目前正在查看作者,链接总是指向作者实体,而不是我想要的书籍。

2) 我不确定如何获得当前作者的id,以便将其传递给过滤器

3) 我不确定如何干净地构建过滤器查询字符串参数。如果需要,我可以手动完成:bookEntityListPath+"?filter[author][value][]="+$authorID但显然这不是那么干净,如果可能的话,我更喜欢更好的方法。

提前感谢!!!

我遇到了同样的问题,当我找不到答案时,我开始尝试一些代码。使用path()trick方法(路由到路径的转换)可以很容易地创建这样的链接。

请参阅此文档:http://symfony.com/doc/current/book/routing.html#generating-URL-来自模板

你的链接看起来像这样:

<a href="{{ path('admin_application_book_list', {
'filter[author][value]': object.id  
}) }}" class="btn btn-small">

"admin_application_book_list"是图书列表的路径(bookEntityListPath?),object.id是作者的id(将名称对象包含在该实体的详细信息或编辑模板中)

最新更新