在 EasyAdmin 中使用 AssociationField 呈现为多个 bagdes
Render as multiple bagdes with an AssociationField in EasyAdmin
我遇到了问题 。
我这样做是为了呈现多对多关系的“字符串”:
->formatValue(function ($value, $entity) {
return implode(",",$entity->getCategories()->toArray());
})
效果还不错!但我有一个问题!
如何在索引中呈现多个徽章?因为此方法呈现一个具有“值 1,值 2”的独特徽章......我想在同一行中看到 2 个徽章,一个具有“值 1”,另一个具有“值 2”。
有人知道怎么做吗?
我希望我的问题很清楚。
诺埃
您需要创建一个执行此操作的自定义模板。
使用简单的管理 ->setTemplatePath() 方法覆盖您的字段模板。
示例:
->setTemplatePath('fields/yourEntity/categories.html.twig')
并且您的 twig 模板循环遍历每个值以使用多个徽章呈现它:
{% for value in field.value %}
<span class="badge badge-info">
{{ value }}
</span>
{% else %}
<span class="badge badge-secondary">
None
</span>
{% endfor %}
您应该为每个类别获得一个徽章,您还可以使用 {{ value }}
及其任何方法以不同的方式呈现这些徽章(使用不同的颜色?)。
我遇到了问题
我这样做是为了呈现多对多关系的“字符串”:
->formatValue(function ($value, $entity) {
return implode(",",$entity->getCategories()->toArray());
})
效果还不错!但我有一个问题!
如何在索引中呈现多个徽章?因为此方法呈现一个具有“值 1,值 2”的独特徽章......我想在同一行中看到 2 个徽章,一个具有“值 1”,另一个具有“值 2”。 有人知道怎么做吗?
我希望我的问题很清楚。 诺埃
您需要创建一个执行此操作的自定义模板。
使用简单的管理 ->setTemplatePath() 方法覆盖您的字段模板。
示例:
->setTemplatePath('fields/yourEntity/categories.html.twig')
并且您的 twig 模板循环遍历每个值以使用多个徽章呈现它:
{% for value in field.value %}
<span class="badge badge-info">
{{ value }}
</span>
{% else %}
<span class="badge badge-secondary">
None
</span>
{% endfor %}
您应该为每个类别获得一个徽章,您还可以使用 {{ value }}
及其任何方法以不同的方式呈现这些徽章(使用不同的颜色?)。