在 Symfony文档 中,提到我们可以重新定义
这是我尝试过的方法:
生成的HTML始终相同。
block_name
来实现更好的自定义,但是看起来并没有生效。这是我尝试过的方法:
在声明集合时:
$builder
->add('medias', CollectionType::class, array(
'entry_type' => MediaType::class,
'block_name' => 'media_proto'
));
在每个集合的字段上
//MediaType.php
$builder
->add('detail', TextType::class, array(
'translation_domain' => 'messages',
'label' => 'person.medias.detail',
'block_name' => 'media_proto'
))
->add('typeMedia', EntityType::class, array(
'class' => 'VSCrmBundle:TypeMedia',
'choice_translation_domain' => true,
'translation_domain' => 'messages',
'label' => 'person.medias.type',
'block_name' => 'media_proto'
))
在集合的configureOptions中
//MediaType.php
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'VS\CrmBundle\Entity\Media',
'block_name' => 'media_proto'
));
}
生成的HTML始终相同。
<input type="text" id="user_parent_person_medias_0_detail" name="user_parent[person][medias][0][detail]" required="required" class="" value="">
我的目的是统一这些块的名称,这样我就可以全局自定义它们。
也许我有什么误解,因为Symfony的所有东西对我来说都是相当新的。
谢谢。