2017-04-26 8 views
0

私はエラーのこのタイプを取得なぜ、私はsymfonyのフォームを始めている、と私はそれを得るいけない: screen from profilerこのcreateForm引数の何が問題なのですか?

をだから何が、私はそれが正常に動作させるために、引数として渡すschould? ここRegisterControllerからの私のコードです:

/** 
* @Route("/register", name="register") 
*/ 
public function showRegisterAction() 
{ 
    $registration = new User(); 

    $form = $this->createForm(new Register(), $registration, ['action' => $this->generateUrl('create'), 'method' => 'POST']); 

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

とfromBuilderと登録クラスの私のコード:

class Register extends AbstractType 
{ 
public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder->add('name', 'text', ['label' => 'USERNAME']) 
     ->add('mail', 'email', ['label' => 'email']) 
     ->add('password', 'password', ['label' => 'password']) 
     ->add('password_repeat', 'password', ['mapped' => false, 'label' => 'confirm']) 
     ->add('company', 'text', ['label' => 'company']) 
     ->add('nip', 'text', ['label' => 'nip']) 
     ->add('street', 'text', ['label' => 'street']) 
     ->add('street_nr', 'text', ['label' => 'street_nr']) 
     ->add('postal_code', 'text', ['label' => 'postal_code']) 
     ->add('city', 'text', ['label' => 'city']) 
     ->add('tel', 'text', ['label' => 'tel']) 
     ->getForm(); 
} 

public function getName() 
{ 
    return "register"; 
} 

public function setDefaultOptions(OptionsResolver $resolver) 
{ 
    $resolver->setDefaults(['data_class' => 'AppBundle\Entity\User']); 
} 

} 

答えて

0

createForm方法は、最初の引数は、フォームのクラス名(文字列)であることを期待ではなく、それのインスタンス。

ので、この行を変更:また

$form = $this->createForm(
    Register::class, 
    $registration, 
    ['action' => $this->generateUrl('create'), 'method' => 'POST'] 
); 

$form = $this->createForm(new Register(), $registration, ['action' => $this->generateUrl('create'), 'method' => 'POST']); 

は、フォームクラスを作成中にgetForm() FormBuilderの方法を必要としないことに注意してください。

参考:http://symfony.com/doc/current/forms.html#creating-form-classes

+0

ありがとうございました! – Eddy

+0

あなたは大歓迎です。また、フォームクラスの作成時に 'getForm()'メソッドを使う必要はありません。 –

関連する問題