我创建了一个全局操作:
public function export(
Admin $user,
StructureRepository $structureRepository,
ExportCsvEntity $exportCsvEntity,
string $entityClass
): HttpFoundationResponse {
$zipcodes = $structureRepository->getZipcodesByStructureFromAdmin($user->getId());
$exportCsvEntity->export(
$zipcodes,
$entityClass
);
return $exportCsvEntity->download($entityClass);
}
public function exportButton(): Action
{
return Action::new('export', 'admin.crud.user.field.activities_tracking.button.export')
->linkToCrudAction('export')
->displayAsLink()
->setCssClass('btn btn-primary')
->createAsGlobalAction()
;
}
在我的积垢控制器中,我称之为:
if ($this->getUser() instanceof Admin) {
$export = $this->exportAction->exportButton();
$actions->add(Crud::PAGE_INDEX, $export);
}
在文档中,它写为=〉Global actions are displayed above the listed entries.
,但在我的示例中,按钮位于表Have a look here下方
我的模板正在扩展'@!EasyAdmin/crud/index.html.twig'
,然后我覆盖了 global_actions 块:
{% block global_actions %}
{{ parent() }}
{% endblock global_actions %}
现在我的按钮在table上方,但也在table下方:Have a look here
我做错了什么?
1条答案
按热度按时间q8l4jmvw1#
尝试通过重写索引模板来实现此目的是正确的。
考虑到模板是如何组织的,一个简单的方法就是修改
global_actions
块,过滤掉你不想在列表上面显示的动作,例如,使用css类来不在列表上面显示全局动作。在你的控制器里:
您需要通过覆盖
main
块将新的操作列表添加到您的列表下。而且你应该在你的列表下得到你的自定义全局操作(带有css类
under-list
)。