我最近遇到了一个我解决的问题.为了解决这个问题,我结束了在我的一个表单中使用了configureOptions的setDefaultOptions.问题是它让我问,这两个功能之间有什么区别?
以下是它们在我的表单中的样子:
namespace AdminBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
//use Symfony\Component\OptionsResolver\OptionsResolver;
Class ProjetIntType extends AbstractType
{
public function buildForm(FormBuilderInterface $constructeur, array $options)
{
$constructeur
->add('langue', 'text')
->add('nom', 'text')
->add('descriptionCours', 'text')
->add('descriptionComplete', 'text')
->add('roles', 'text')
->add('aptitudesDeveloppees', 'text');
}
/*public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'PublicBundle\Entity\ProjetInt',
));
}*/
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'PublicBundle\Entity\ProjetInt',
));
}
public function getName()
{
return 'projetInt';
}
}
解决方法:
setDefaultOptions()已被弃用,转而使用configureOptions().请参阅UPGRADE-3.0.md.在Symfony 2.7中引入了configureOptions(),3.0中将需要它.
标签:php,forms,symfony
来源: https://codeday.me/bug/20190528/1169384.html