Не удалось загрузить ошибку типа "XYZ" при переопределении типов форм FOSUserBundle - PullRequest
7 голосов
/ 26 октября 2011

Я пытаюсь переопределить RegistrationFormType в Symfony2 FOSUserBundle.Я слежу за документацией и верю, что я все рассмотрел.Я создал пакет, содержащий мои переопределения для FOSUserBundle, и следующий код взят из этого пакета, а также из конфигурации приложения.

Кто-нибудь испытывал это при переопределении FOSUserBundle или видел в моем коде что-нибудь, что помогло бы объяснить, почему я продолжаю получать эту ошибку.Я на Symfony v2.0.4

RegistrationFormType.php

<?php

/*
 * This file is part of the FOSUserBundle package.
 *
 * (c) FriendsOfSymfony <http://friendsofsymfony.github.com/>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Thrive\SaasBundle\Form\Type;

use Symfony\Component\Form\FormBuilder;
use FOS\UserBundle\Form\Type\RegistrationFormType as BaseType;

class RegistrationFormType extends BaseType
{

    public function buildForm(FormBuilder $builder, array $options)
    {
        $builder
            ->add('firstname', null, array('error_bubbling' => true))
            ->add('lastname', null, array('error_bubbling' => true))
            ->add('company', null, array('error_bubbling' => true))
            ->add('email', 'email', array('error_bubbling' => true))
            ->add('username', null, array('error_bubbling' => true))
            ->add('plainPassword', 'repeated', array('type' => 'password', 'error_bubbling' => true))
            ;
    }

    public function getName()
    {
        return 'thrive_user_registration';
    }

}

Services.yml

services:
  thrive_saas_registration.form.type:
    class: Thrive\SaasBundle\Form\Type\RegistrationFormType
    arguments: [%fos_user.model.user.class%]
    tags:
        - { name: form.type, alias: thrive_user_registration}

Файл конфигурации приложения

fos_user:
     ...
    registration: 
      form:
        type: thrive_user_registration

Ответы [ 2 ]

4 голосов
/ 31 октября 2011

Оказывается, мой файл services.yml не был загружен через внедрение зависимостей. После копания я понял, что мой файл extension.php для этого комплекта был назван неправильно. Ранее я переименовал пакет и произвел опечатку при переименовании файла extension.php в папке DependencyInjection. После исправления ошибок все снова работает.

0 голосов
/ 29 октября 2011

Вы пытались просто добавить одно новое поле и посмотреть, работает ли оно?

public function buildForm(FormBuilder $builder, array $options)
{
    parent::buildForm($builder, $options);

    // add your custom field
    $builder->add('name');
}

Также не забудьте очистить кэш своего продукта, если вы тестируете оттуда ...

...