我的应用程序显示此错误
类型错误:函数AppBundle \ Form \ ActualiteType :: __ construct()的参数太少,0传递给/Applications/MAMP/htdocs/SyndicNous/vendor/symfony/symfony/src/Symfony/Component/Form/FormRegistry.php on第90行和预期的2
我的formType
class ActualiteType extends AbstractType {/ ** * @var bool $ admin * / private $ admin;
/**
* @var User $user
*/
private $user;
/**
* ActualiteType constructor.
* @param bool|false $admin
*/
public function __construct($admin = false, $user)
{
$this->admin = $admin;
$this->user = $user;
}
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$categories = array(
'Travaux' => 'Travaux',
'Voisinage' => 'Voisinage',
);
$builder
->add('title')
->add('category')
->add('content')
->add('datePublish')
->add('category', ChoiceType::class, array(
'choices' => $categories
)
);
if ($this->user->getResidence() != null) {
$builder->add('residence', EntityType::class, array(
'class' => 'AppBundle:Residence',
'choices' => $this->user->getResidence(),
));
} else {
$builder->add('residence', 'entity', array(
'class' => 'AppBundle:Residence',
'choice_label' => 'name'
));
};
}
/**
* @param OptionsResolver $resolver
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'AppBundle\Entity\Actualite'
));
}
/**
* {@inheritdoc}
*/
public function getBlockPrefix()
{
return 'appbundle_actualite';
}
}
你知道问题会从哪里来的吗?谢谢
1 回答
我不明白你想做什么 . 您不需要使用构造函数将参数传递给formType . 这个($ options)有buildForm方法的第二个参数 .
在您的控制器中,创建如下表单:
并修改你的formType:
不要忘记在configureOptions方法中放置选项的默认值 .