Я новичок в Symfony 2 Framework и безуспешно пытаюсь создать регистрационную форму для добавления пользователей в мою базу данных.
Я следил за этим руководство и все, кажется, работает нормально, за исключением того, что моя форма не будет отображаться.
Это мой класс UserType.php:
class UserType extends AbstractType{public function buildForm(FormBuilderInterface $builder, array $options)
{
echo "builder";
$builder->add('user', 'user_form');
$builder->add('password', 'repeated', array(
'first_name' => 'password',
'second_name' => 'confirm',
'type' => 'password',
));
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'XXX\Entity\User'
));
}
RegistrationType.php:
class RegistrationType extends AbstractType{public function buildForm(FormBuilderInterface $builder, array $options)
{
echo "1";
$userType=new UserType();
$builder->add('user', $userType);
echo "2";
$builder->add('Aggiungi', 'submit');
echo "3";
}
/**
* Returns the name of this type.
*
* @return string The name of this type
*/
public function getName()
{
return 'register_form';
}
}
И мой AccountControllorer.php:
class AccountController extends Controller
{
public function registerAction()
{
$registration = new Registration();
$form = $this->createForm(new RegistrationType(), $registration, array(
'action' => $this->generateUrl('account_create'),
));
return $this->render(
'xxx:Account:register.html.twig',
array('form' => $form->createView())
);
}
public function createAction(Request $request)
{
$em = $this->getDoctrine()->getManager();
echo "controller 1 ok";
$rt=new RegistrationType();
$r=new Registration();
$form = $this->createForm($rt, $r);
echo "controller 2 ok";
$form->handleRequest($request);
echo "all ok";
if ($form->isValid()) {
$registration = $form->getData();
$em->persist($registration->getUser());
$em->flush();
echo "yess";
}
return $this->render(
'xxx:Account:register.html.twig',
array('form' => $form->createView())
);
}
}
После некоторого эха в коде я обнаружил, что контроллер останавливается после «контроллер 1 нормально» (то есть форма не создана), поэтому я повторил более подробно, и я обнаружил, что метод buildForm в UserType входит в цикл повторяет «строитель» бесконечное количество раз, выдавая 500 внутренних ошибок в браузере.
Так в чем же проблема? Я застрял здесь весь день. Если вы хотите больше кода, просто спросите!
Заранее спасибо,
Рапс
Задача ещё не решена.
Других решений пока нет …