1

Тема: Не могу создать поле типа repeated

Здравствуйте.
Делаю свой первый проект на Symfony и столкнулся с проблемой, которую никак не могу решить. Мне необходимо создать два поля: пароль и его повторный ввод. Использую для этого тип repeated, но на странице с формой получаю ошибку

The option "first_name" does not exist. Known options are: "attr", "block_name", "by_reference", "cascade_validation", "compound", "constraints", "csrf_field_name", "csrf_protection", "csrf_provider", "data", "data_class", "disabled", "empty_data", "error_bubbling", "error_mapping", "extra_fields_message", "firstName", "first_options", "intention", "invalid_message", "invalid_message_parameters", "label", "label_attr", "mapped", "max_length", "options", "pattern", "post_max_size_message", "property_path", "read_only", "required", "second_name", "second_options", "translation_domain", "trim", "type", "validation_constraint", "validation_groups", "virtual"

При этом код имеет вид:

->add('password', 'repeated', array(
                'type' => 'password',
                'first_name' => 'password',
                'second_name' => 'confirm',
                'first_options' => array('label' => 'user.form.label.first_password'),
                'second_options' => array('label' => 'user.form.label.second_password'),
            ))

Весь код файла http://pastebin.com/eAK2amr0

Если убрать параметр first_name, то получаю ошибку "The option "first_name" does not exist."

Код экшена контроллера, где происходит вызов конструктора формы:

/**
     * @Template()
     */

    public function formAction($id = 0) {
        $em = $this->getDoctrine()->getManager();
 
        if ($id) {
            $user = $em->getRepository('SefidaUserBundle:User')->find($id);
 
            if (!$user) {
                throw new NotFoundHttpException($this->get('translator')->trans('user.exception.404'));
            }
 
            $this->originalRoles = $user->getRoles();
        } else {
            $user = new User();
        }
 
        $form = $this->createForm(new UserType(), $user);
 
        $request = $this->getRequest();
 
        if ($request->isMethod('POST')) {
            $form->bind($request);
 
            if ($form->isValid()) {
                $user->makeRelevantRoles($this->originalRoles);
                $em->persist($user);
                $em->flush();
 
                return $this->redirect($this->generateUrl('_users_form', array(
                    'id' => $user->getId()
                )));
            }
        }
 
        return array(
            'form' => $form->createView()
        );
    }

Объясните, пожалуйста, что я делаю не так?

2

Re: Не могу создать поле типа repeated

Что-то не то компосер мне наставил, так как файл /Symfony/Component/Form/Extension/Core/Type/RepeatedType.php действительно регистрировал параметры с именем firstName, хотя валидатор типа использовал стандартное first_name. Судя по всему, зацепил из dev версии чей-то оригинальный коммит.
Вопрос решен.