【发布时间】:2017-10-10 03:22:35
【问题描述】:
在symfony documentation 中,据说我们可以重新定义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 的所有东西对我来说都很新。
谢谢
【问题讨论】:
-
如果你这样做,你将如何处理数据收集?
-
展示还是自定义?
标签: php symfony twig symfony-3.2