Использование той же формы для вставки и обновления пользователя в Symfony2

0

У меня есть пользователь, который может зарегистрироваться через форму: имя, фамилию, адрес электронной почты, телефон, пароль, имя пользователя.

Зарегистрированный пользователь может изменение: имя, фамилию, телефон

Мой пользовательский тип

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('name', 'text')
        ->add('lastname', 'text')
        ->add('email', 'email')
        ->add('phone', 'text')
        ->add('password', 'text')
        ->add('username', 'text');
}

Как я могу визуализировать другую форму для регистрации и обновления?

  • 0
    Просто: просто создайте другой вид Twig и введите тот же FormType но только отображайте form_row() который необходим. Вам нужно будет связать свою форму с вашей сущностью, хотя данные будут присутствовать в форме, когда пользователь меняет свой профиль.
Теги:
symfony-forms

1 ответ

1

Единственное отличие состоит в том, что вы передаете в качестве второго атрибута метод createForm. Если вы пройдете пустой объект, это будет форма добавления нового пользователя. Если вы передадите объект с заполненными данными вашего пользовательского объекта, это будет форма редактирования. Так:

$yourNewUserForm = $this->createForm(new UserType(), new UserEntity());

$userEntity = $this->getDoctrine()->getRepository('YourBundle:User')->find(1);
$yourEditUserForm = $this->createForm(new UserType(), $userEntity);

ПРИМЕЧАНИЕ. createForm getDoctrine() кода предполагается, что вы используете Controller расширения класса, и у вас есть доступные методы createForm и getDoctrine() но подумайте, должно ли это быть частью контроллера или его нужно переместить в другое место (что, вероятно, является лучшей идеей)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню