【问题标题】:Symfony - easyAdmin changing 'list.row_actions'Symfony - easyAdmin 更改“list.row_actions”
【发布时间】:2016-08-24 23:22:15
【问题描述】:

目前我正在使用 Symfony 3 并实现 Easy Admin 后端。

默认情况下,可用标签显示为“list.row_actions”。

我已阅读 Easy Admin 的文档,并设法编辑某些标签,例如编辑和删除。

但是让我感到困惑的是为什么我不能编辑列表表头上的 'list.row_actions。

编辑页面也有同样的问题,特别是按钮:

这是我在easy_admin树下的config.yml中添加的一些配置:

config.yml

list:

  actions:
    - { name: 'new', label: 'New' }
    - { name: 'search', label: 'Search' }
    - { name: 'edit', label: 'Edit' }

    - { name: 'delete', label: 'Delete' }

【问题讨论】:

    标签: symfony


    【解决方案1】:

    经过几次调整和失败,我找到了解决方案,它已记录在案,但我没想到它会嵌套记录在案。

    这里是 github 页面:Advanced Design Configuration

    我们将通过覆盖 {{ block }} 来覆盖默认的 html.twig 文件

    创建一个覆盖文件夹

    首先,在 Resources\views 中创建一个文件夹 easy_admin

    假设你想更改list.row_actions,从easy-admin 转到源文件通常在里面:

    vendor\javiereguiluz\easyadmin-bundle\views\includes\ In the last version
    

    寻找源头

    找到list.html.twig 文件并查看其内容以获得简要说明。如果您 CTRL + F(查找)list.row_actions,它将直接向您显示类似这样的内容。现在复制整个block

            {% block table_head %}
            <tr>
                {% for field, metadata in fields %}
                    {% set isSortingField = metadata.property == app.request.get('sortField') %}
                    {% set nextSortDirection = isSortingField ? (app.request.get('sortDirection') == 'DESC' ? 'ASC' : 'DESC') : 'DESC' %}
                    {% set _column_label = (metadata.label ?: field|humanize)|trans(_trans_parameters) %}
                    {% set _column_icon = isSortingField ? (nextSortDirection == 'DESC' ? 'fa-caret-up' : 'fa-caret-down') : 'fa-sort' %}
    
                    <th data-property-name="{{ metadata.property }}" class="{{ isSortingField ? 'sorted' }} {{ metadata.virtual ? 'virtual' }} {{ metadata.dataType|lower }} {{ metadata.css_class }}">
                        {% if metadata.sortable %}
                            <a href="{{ path('easyadmin', _request_parameters|merge({ sortField: metadata.property, sortDirection: nextSortDirection })) }}">
                                <i class="fa {{ _column_icon }}"></i>
                                {{ _column_label|raw }}
                            </a>
                        {% else %}
                            <span>{{ _column_label|raw }}</span>
                        {% endif %}
                    </th>
                {% endfor %}
    
                {% if _list_item_actions|length > 0 %}
                    <th>
                        <span>{{ 'list.row_actions'|trans(_trans_parameters, 'EasyAdminBundle') }}</span>
                    </th>
                {% endif %}
            </tr>
        {% endblock table_head %}
    

    粘贴以覆盖文件

    要粘贴/覆盖它,您需要创建一个与您复制它的文件名完全相同的文件。在这种情况下,list.html.twig。然后将其粘贴到文件中

    重要提示:在文件顶部,包含此标签 -

    {% extends '@EasyAdmin/default/list.html.twig' %}
    
    {% block table_head %}
    <tr>
        {% for field, metadata in fields %}
        ...code continues...
    

    为什么要覆盖?

    如果您从源代码编辑文件,则部署它会遇到问题,尤其是在您使用 git clone 然后使用 composer update 时。

    覆盖确保代码即使在部署时仍然存在。

    【讨论】:

      【解决方案2】:

      我也遇到了同样的问题。至于我,我更容易修复它。

      首先尝试使用这个

      # app/config/config.yml (Symfony3)
      # config/packages/framework.yaml (Symfony4)
      framework:
         translator:     { fallbacks: "%locale%" }
      

      但如果你想用你的翻译覆盖,创建这个文件:

      # translations/EasyAdminBundle.en.yaml
      list.row_actions: "My actions"
      

      【讨论】:

        猜你喜欢
        • 2020-12-04
        • 2021-10-13
        • 2018-12-31
        • 2016-04-07
        • 1970-01-01
        • 2021-11-21
        • 2019-07-27
        • 1970-01-01
        • 2019-07-11
        相关资源
        最近更新 更多