添加额外的字段以使用EasyAdmin显示操作

时间:2019-03-23 22:01:56

标签: symfony4 easyadmin

我有一个实体供应商和另一个与该供应商有关的实体 Article 。 当我向供应商展示时,我想显示该供应商提供的商品。 我在实体easydamin配置中添加了一个额外的字段articles,但是在vendor / easycorp / easyadmin-bundle / src / Resources / views / default / show.html.twig中出现了错误Key "label" for array with keys "0" does not exist. 28)

我在 EasyCorp \ Bundle \ EasyAdminBundle \ Controller \ AdminControllerTrait :: showAction 中进行测试。 我添加了一个queryBuilder来检索供应商提供的所有文章,并影响在easyadmin实体配置中添加的多余字段中的数据。

覆盖AdminControllerTrait.php:

    /**
     * The method that is executed when the user performs a 'show' action on an entity.
     *
     * @return Response
     */
    protected function showAction()
    {
        ...

        // Retrieve the supplier's articles.
        $articles = $this->em->getRepository('App\Entity\Settings\Article')->getArticleFromSupplier($id);
        $fields['articles'] = $articles;
        $deleteForm = $this->createDeleteForm($this->entity['name'], $id);

        ...
    }

show.html.twig文件的第28行:

23            {% block show_fields %}
24                {% for field, metadata in fields %}
25                    {% block show_field %}
26                        <div class="form-group field-{{ metadata.type|default('default')|lower }} {{ metadata.css_class|default('') }}">
27                            <label class="control-label">
28                                {{ metadata.label|trans(_trans_parameters)|raw }}
29                            </label>
30                            <div class="form-widget">
31                                <div class="form-control">
32                                    {{ easyadmin_render_field_for_show_view(_entity_config.name, entity, metadata) }}
33                                </div>

我的查询:

    public function getArticleFromSupplier($supplier)
    {
        $query = $this->createQueryBuilder('a')
            ->where('a.active = true')
            ->orderBy('a.name', 'ASC')
            ->andWhere('a.supplier = :id')
            ->setParameter('id', $supplier)
            ->getQuery();

        return $query->getResult();
    }

我的easyadmin配置:

easy_admin:
    entities:
        Supplier:
            show:
                fields:
                    ...
                    - { property: 'articles', type: 'association', label: 'Article', template: '@EasyAdmin/default/field_association.html.twig' }

我希望显示文章列表,但是我在文档中什么都找不到。 我的查询返回一个文章数组,但是这些数组的键显示为标签,这将返回错误。

0 个答案:

没有答案