Използване на същата форма за вмъкване на потребител и актуализация в Symfony2

Имам потребител, който може да се регистрира чрез формуляр: име, фамилия, имейл, телефон, парола, потребителско име.

Регистрираният потребител може да променя: име, фамилия, телефон

Моят потребителски тип

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');
}

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


person andrius.k    schedule 25.03.2015    source източник
comment
Просто: просто направете друг Twig изглед и инжектирайте същия FormType, но покажете само form_row(), които са необходими. Ще трябва да обвържете формуляра си с вашия обект, така че данните да присъстват във формуляра, когато потребителят променя своя профил.   -  person D4V1D    schedule 25.03.2015


Отговори (1)


Единствената разлика е това, което предавате като втори атрибут на метода createForm. Ако подадете празен обект, това ще бъде форма за добавяне на нов потребител. Ако подадете обект с попълнени данни на вашия потребителски обект, това ще бъде формуляр за редактиране. Така:

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

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

ЗАБЕЛЕЖКА: Горният код предполага, че сте в клас, разширяващ Controller и имате наличните си createForm и getDoctrine() методи, но помислете дали това трябва да бъде част от контролера или трябва да бъде преместено някъде другаде (което вероятно е по-добро идея)

person Tomasz Madeyski    schedule 25.03.2015