无法加载“acme_user_registration”类型

时间:2015-03-15 15:21:46

标签: symfony fosuserbundle

我知道这个问题很常见,我解决了这个问题,但我没有被罚款。我尝试覆盖FOSUserBundle中的表单类型(添加名称字段),我遵循以下文档: https://github.com/FriendsOfSymfony/FOSUserBundle/blob/1.3.x/Resources/doc/overriding_forms.md,我收到错误:"无法加载类型" acme_user_registration"。 我的实体用户:

//src/MyBlogBundle/UserBundle/Entity/User.php
namespace MyBlogBundle\UserBundle\Entity;
use FOS\UserBundle\Entity\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Entity
* @ORM\Table(name="fos_user")
*/
class User extends BaseUser
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

     /**
 * @ORM\Column(type="string", length=50)
 * @Assert\NotBlank(message="Please enter your name.", groups=     {"Registration", "Profile"})
 * @Assert\Length(min=3,max=50, minMessage="The name is too short.",
 * maxMessage = "Your first name cannot be longer than {{ limit }} characters long",
 *  groups={"Registration", "Profile"})
 */
    protected $name;
    public function __construct()
    {
        parent::__construct();
    }
}

我的FormType:

// src/MyBlogBundle/UserBundle/Form/Type/RegistrationFormType.php
namespace MyBlogBundle\UserBundle\Form\Type;
use Symfony\Component\Form\FormBuilderInterface;
use FOS\UserBundle\Form\Type\RegistrationFormType as BaseType;
class RegistrationFormType extends BaseType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        parent::buildForm($builder, $options);
        $builder->add('name');
    }
    public function getName()
    {
        return 'acme_user_registration';
    }
}

配置表单类型:

# src/MyBlogBundle/UserBundle/Resources/config/services.yml
services:
acme_user.registration.form.type:
    class: MyBlogBundle\UserBundle\Form\Type\RegistrationFormType
    arguments: [%fos_user.model.user.class%]
    tags:
        - { name: form.type, alias: acme_user_registration }

和app / config / config.yml:

fos_user:
db_driver: orm 
firewall_name: main
user_class: MyBlogBundle\UserBundle\Entity\User
registration:
    form:
        type: acme_user_registration

能不能给我一个小问题?

1 个答案:

答案 0 :(得分:0)

将src / MyBlogBu​​ndle / UserBundle / Resources / config / services.yml的配置转移到src / MyBlogBu​​ndle // Resources / config / services.yml,并将Set和Get方法添加到User Entity - 它解决了我的问题。