如何在EasyAdmin 4中修改CollectionField折叠面板标题为实体标题
修改EasyAdmin 4.6中CollectionField折叠面板标题的方法
针对你的场景,分两种情况给出解决方案:
1. 修改整个Collection的容器标题
你已经通过CollectionField::new('needs', 'Besoins')的第二个参数设置了容器标题为Besoins,如果需要调整这个文本,直接修改该参数即可。
2. 修改每个Needs条目折叠面板的标题
当使用setEntryIsComplex(true)时,每个条目默认会用实体的__toString()方法返回值作为折叠标题,要自定义这个标题,可以使用setEntryLabelCallable()方法,传入一个回调函数生成自定义标题:
修改你的CollectionField代码如下:
yield CollectionField::new('needs', 'Besoins') ->setEntryIsComplex(true) ->setEntryType(NeedsType::class) ->setColumns(12) ->allowAdd(true) ->allowDelete(true) ->setFormTypeOption('by_reference', false) // 添加以下代码设置自定义折叠标题 ->setEntryLabelCallable(function (?Needs $needs) { // 根据Needs实体的字段自定义标题,这里假设你有getTitle()方法 return $needs ? sprintf("Besoin : %s", $needs->getTitle()) : 'Nouveau besoin'; });
注意:如果你的Needs实体没有getTitle()方法,替换成你实际拥有的字段(比如getName()等),未保存的新条目会显示Nouveau besoin,已保存的条目会显示对应的自定义标题。
内容的提问来源于stack exchange,提问作者ledukilian
相关产品推荐
相关产品推荐

