你想定义一个options的key吗?
还是怎么办?
http://symfony.com/doc/curren...
补充:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$formBuilder = $builder->add('name', null, [
'label' => '路由名称'
]);
if(1 == $options['is_new']){
$formBuilder->add('status', ChoiceType::class, [
'choices' => [
'启用' => 1,
'禁用' => 0
],
'expanded' => true,
'label' => '状态',
'data' => 1,
'label_attr' => [
'class' => 'radio-inline'
]
])
->add('active', ChoiceType::class, [
'choices' => [
'显示' => 1,
'隐藏' => 0
],
'expanded' => true,
'label' => '是否显示',
'data' => 1,
'label_attr' => [
'class' => 'radio-inline'
]
]);
}else{
$formBuilder->add('status', ChoiceType::class, [
'choices' => [
'启用' => 1,
'禁用' => 0
],
'expanded' => true,
'label' => '状态',
'label_attr' => [
'class' => 'radio-inline'
]
])
->add('active', ChoiceType::class, [
'choices' => [
'显示' => 1,
'隐藏' => 0
],
'expanded' => true,
'label' => '是否显示',
'label_attr' => [
'class' => 'radio-inline'
]
]);
}
}
/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'is_new' => 1
));
}
这时,你可以在options里面拿到is_new的数据,你再使用的时候,可以传入参数
$form = $this->createForm('AdminBundle\Form\MenuType', $menu, ['is_new' => 1]);
你可以把你的json数据作为第三个参数传进来,然后,在处理你的逻辑。