web-dev-qa-db-ja.com

Symfony \ Component \ Form \ FormRenderer :: renderBlock()に渡される引数1は、... \ FormViewのインスタンス、... \ Formのインスタンスである必要があります

エラー全体はmissiong名前空間Symfony\Component\Formであり、タイトルの最大文字数のために3つのドットに置き換えられます。

そのため、 docs に示されている手順に従っていますが、エラーの原因を見つけることができません。誰か助けていただければ、とてもありがたいです。

ここに私のAuthControllerからのメソッドがあります

/**
 * @Route("/register", name="registrationPage")
 */
public function showRegistrationPage(Request $request)
{
    return $this->render('auth/register.html.twig', [
        'register_form' => $this->createForm(RegisterType::class, (new UserInformation()))
    ]);
}

そして、ここにメソッドがあり、フォームを宣言します

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('firstname', TextType::class, ['attr' => ['class' => 'form-control']])
        ->add('secondname', TextType::class, ['attr' => ['class' => 'form-control']])
        ->add('email', EmailType::class, ['attr' => ['class' => 'form-control']])
        ->add('password', PasswordType::class, ['attr' => ['class' => 'form-control']])
        ->add('password_confirmation', PasswordType::class, [
            'label' => 'Confirm Password',
            'attr' => ['class' => 'form-control'],
            'mapped' =>false
        ])
        ->add('Register', SubmitType::class, ['attr' => ['class' => 'btn btn-primary']]);

}
12
h0lend3r
/**
 * @Route("/register", name="registrationPage")
 */
public function showRegistrationPage(Request $request)
{
    $form = $this->createForm(RegisterType::class, (new UserInformation());

    return $this->render('auth/register.html.twig', [
        'register_form' => $form->createView()
    ]);
}

http://symfony.com/doc/current/forms.html#building-the-form

不足している部分はcreateView()メソッドでした

/**
 * @Route("/register", name="registrationPage")
 */
public function showRegistrationPage(Request $request)
{
    return $this->render('auth/register.html.twig', [
        'register_form' => $this->createForm(RegisterType::class, (new UserInformation()))->createView()
    ]);
}
2
giurgiu rubin