You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在编辑页面为ArrayField输入框添加数组键作为标签

解决方案

要在编辑页面将数组键作为标签显示在文本框旁,你需要自定义ArrayField的编辑模板,具体步骤如下:

1. 创建自定义编辑模板

在Symfony项目的模板目录下(如templates/admin/fields/)新建array_edit.html.twig文件,写入以下内容:

{% block field %}
    {% for child in form.children %}
        <div class="mb-3">
            <label class="form-label">{{ child.vars.name }}</label>
            {{ form_widget(child, {'attr': {'class': 'form-control'}}) }}
        </div>
    {% endfor %}
{% endblock %}

该模板会遍历数组的每个键值对,将数组键作为标签渲染,值对应到文本框中,同时遵循Symfony表单的命名规范,确保提交后能正确映射回原数组。

2. 修改CRUD控制器的字段配置

更新原ArrayField的配置,为编辑页面指定刚创建的模板:

yield ArrayField::new('myArray')
    ->setFormTypeOption('allow_add', false)
    ->setFormTypeOption('allow_delete', false)
    ->setTemplatePath('admin/fields/array.html.twig') // 保留列表页原模板
    ->setTemplatePath('admin/fields/array_edit.html.twig', 'edit'); // 编辑页使用新模板

通过setTemplatePath的第二个参数,指定新模板仅在edit(编辑)页面生效,列表页继续使用你之前自定义的模板。

3. 验证效果

清除Symfony缓存后进入编辑页面,就能看到每个文本框旁都显示对应的数组键(如#1、#2)作为标签了。

内容的提问来源于stack exchange,提问作者walruz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 12:12:13