我有一个实体供应商和另一个与该供应商有关的实体 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' }
我希望显示文章列表,但是我在文档中什么都找不到。 我的查询返回一个文章数组,但是这些数组的键显示为标签,这将返回错误。