Symfony Easyadmin - 如何在 "btn action-new" 附近添加自定义操作?

Symfony Easyadmin - How to add a custom action near "btn action-new"?

我想在列表页面的“btn action-new”附近添加自定义操作。 我试试:

entities:
    Pratiquant:
        class: AppBundle/Entity/Pratiquant
        actions:
            - {name: 'fichePresence',  type: 'method', action: 'fichePresence', label: 'fiche de presence' }

我不需要这个:

entities:
    Pratiquant:
        class: AppBundle/Entity/Pratiquant
        list: 
            actions:
                - {name: 'fichePresence',  type: 'method', action: 'fichePresence', label: 'fiche de presence' }

希望有人理解我!

您的配置是正确的...但它没有达到您想要的效果。现在,为 list 视图配置的所有操作都被视为列表中显示的项目的操作。 built-in 无法为 list 视图定义 "global actions"。

在任何情况下,您都可以通过覆盖 list 模板的一个小片段来做您想做的事。为此,请创建以下 Twig 模板(将其存储在该确切位置非常重要):

{# app/Resources/views/easy_admin/Pratiquant/list.html.twig #}
{% extends '@EasyAdmin/default/list.html.twig' %}

{% block view_actions %}
    {{ parent() }}

    <a href="{{ path('easyadmin', { view: 'fichePresence' }) }}">Fiche de presence</a>
{% endblock %}

这将执行您自定义 AdminControllerfichePresenceAction() 方法。

使用 EasyAdmin 3 :

public function configureActions(Actions $actions): Actions
{
    $fichePresence = Action::new('fichePresence', 'fiche de presence', 'fa fa-download')
        ->linkToCrudAction('fichePresenceAction')
        ->createAsGlobalAction();

    return $actions
        ->add(Crud::PAGE_INDEX, Action::DETAIL)
        ->add(Crud::PAGE_INDEX, $fichePresence);
}

See documentation