2015-12-01 4 views
1

Хорошо, возможно, это что-то простое, но я просто не могу найти, где проблема. Я попытался с, но не подходит для моей проблемыНе удалось загрузить тип Symfony2

Я пытаюсь создать из, но из класса формы, а не создавать формы в контроллере ..

здесь код ..

это из контроллер

/** 
* @Route("login", name="login") 
*/ 
public function loginAction (Request $request) { 
    $registration = new Registration(); 

    $form = $this->createForm(LoginForm::class, $registration, array(
     'method' => 'POST' 
    )); 

    return $this->render(
     'admin/login.html.twig', 
     array('form' => $form->createView()) 
    ); 
} 

Внутри контроллера я использовал использовать, чтобы задаваемая LoginForm я использовать в части CreateForm, так что это не проблема

это от FORM класс

<?php 

namespace AppBundle\AppForm; 

use Symfony\Component\Form\AbstractType; 
use Symfony\Component\Form\FormBuilderInterface; 
use Symfony\Component\Form\Extension\Core\Type\SubmitType; 

class LoginForm extends AbstractType { 
public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder 
     ->add('name') 
     ->add('password') 
     ->add('save', SubmitType::class); 
} 
public function configureOptions(OptionsResolver $resolver) 
{ 
    $resolver->setDefaults(
     array(
      'data_class' => 'AppBundle\Entity\Registration' 
     )); 
} 

public function getName() 
{ 

} 
} 
+2

И ... В чем вопрос? Каковы ошибки? – Matheno

+0

в поставщика \ Symfony \ Symfony \ SRC \ Symfony \ Component \ Form \ FormRegistry.php в строке 83 - } если (! $ Типа) { певд InvalidArgumentException (Sprintf ('Не удалось загрузить тип "% s" ', $ name)); } $ this-> resolveAndAddType ($ type); – Constantine1001

+0

Какую версию Symfony вы используете? Проверьте его точно. –

ответ

6

Ваша проблема в версии Symfony. Вы используете код из Symfony3, хотя на самом деле есть Symfony2.

Изменение SubmitType::class в submit, LoginForm::class к new LoginForm() и все будет работать нормально.

Или вы можете обновить версию Symfony, и все будет хорошо работать с вашим текущим кодом.

+0

Да. Обновление до S3 будет весело, так как все существующие ссылки на текущую документацию теперь указывают на неверную информацию S2.x. – Cerad

+0

спасибо, проблема решена, я понимаю документацию по Symfony шаг за шагом, так что это не моя ошибка. – Constantine1001

+0

Это потому, что Symfony 3.0.0 был выпущен вчера (http://symfony.com/blog/symfony-3-0 -0-отпущена). И теперь вся документация указывает на текущую (3.0) версию. Но вы начали свой проект несколько дней назад и вместо этого установили Symfony 2.7. –

Смежные вопросы