无法加载类型 "acme_user_registration" FOSUserBundle



在此处使用默认说明:

https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/index.md

在我的注册表中设置自定义"名称"字段效果很好。

我想要两个名称字段。一个用于名字,另一个用于姓氏。所以首先我只想将名称字段覆盖为名字。通过将"实体"更改为"名字"会导致此错误:

Could not load type "acme_user_registration"

为什么当我简单地更改列标题时它会爆炸?我还添加了getter/setter。我认为这是服务的问题.xml,但我不知道服务如何与 yml 设置和表单生成器配合使用。

用户.php

     /**
     * @ORMId
     * @ORMColumn(type="integer")
     * @ORMGeneratedValue(strategy="AUTO")
     */
    protected $id;
    /**
     * @ORMColumn(type="string", length=255)
     *
     * @AssertNotBlank(message="Please enter your name.", groups={"Registration", "Profile"})
     * @AssertLength(
     *     min=3,
     *     max="255",
     *     minMessage="The name is too short.",
     *     maxMessage="The name is too long.",
     *     groups={"Registration", "Profile"}
     * )
     */
    protected $firstname;
    public function __construct()
    {
        parent::__construct();
        // your own logic
    } 

注册表单类型.php

<?php
namespace MACPCmsBundleFormType;
use SymfonyComponentFormFormBuilderInterface;
use FOSUserBundleFormTypeRegistrationFormType as BaseType;
class RegistrationFormType extends BaseType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        parent::buildForm($builder, $options);
        // add your custom field
        $builder->add('firstname');
    }
    public function getFirstname()
    {
        return 'acme_user_registration';
    }
}

服务.xml

<?xml version="1.0" encoding="UTF-8" ?>
<container xmlns="http://symfony.com/schema/dic/services"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
    <services>
        <service id="acme_user.registration.form.type" class="MACPCmsBundleFormTypeRegistrationFormType">
            <tag firstname="form.type" alias="acme_user_registration" />
            <argument>%fos_user.model.user.class%</argument>
        </service>
    </services>
</container>

配置.yml

fos_user:
    db_driver: orm # other valid values are 'mongodb', 'couchdb' and 'propel'
    firewall_name: main
    user_class: MACPCmsBundleEntityUser
    registration:
        form:
            type: acme_user_registration

请尝试更改方法:

public function getFirstname()
{
    return 'acme_user_registration';
}

自:

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

此方法告诉您此表单的确切调用方式。然后,在配置中使用此名称。其余的对我来说看起来不错,但我们会尝试。

相关内容

  • 没有找到相关文章

最新更新