FOSUserBundle перезаписал регистрацию, но не смог загрузить ошибку типа


Я пытался использовать FOSUserBundle, я следовал инструкциям в документации по перезаписи пакета, но я получаю эту ошибку при попытке получить доступ к /зарегистрироваться, пока /логин работает (я не перезаписывал его):

Could not load type "app_user_registration"
500 Internal Server Error - InvalidArgumentException 

Конфигурации

Версия для Symfony: 3.1.7

Версия FOSUserBundle: разработчик-мастер

Мой файлы

Приложение/конфигурация/службы.yml:

services:
    app.form.registration:
        class: CoreBundle\Form\Type\RegistrationFormType
        tags:
            - { name: form.type, alias: app_user_registration }

Приложение/конфигурация/config.yml:

fos_user:
    db_driver: orm
    firewall_name: main
    user_class: CoreBundle\Entity\User
    registration:
        form:
            type: app_user_registration

Src/CoreBundle/Form/Type/RegistrationFormType.php

<?php
// src/CoreBundle/Form/Type/RegistrationFormType.php

namespace CoreBundle\Form\Type;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;

class RegistrationFormType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('name');
    }

    public function getParent()
    {
        return 'fos_user_registration';
    }

    public function getName()
    {
        return 'app_user_registration';
    }
}
?>

Src/viwa/UserBundle/Controller/RegistrationController.php :

<?php
// src/viwa/UserBundle/Controller/RegistrationController.php

namespace viwa\UserBundle\Controller;

use Symfony\Component\HttpFoundation\RedirectResponse;
use FOS\UserBundle\Controller\RegistrationController as BaseController;

class RegistrationController extends BaseController
{
    // Don't need to change this right now.
}
?>

Src/viwa/UserBundle/viwaUserBundle.php :

<?php
// src/viwa/UserBundle/viwaUserBundle.php

namespace viwa\UserBundle;

use Symfony\Component\HttpKernel\Bundle\Bundle;

class viwaUserBundle extends Bundle
{
    public function getParent()
    {
        return 'FOSUserBundle';
    }
}

Если вам нужно что-то еще, чтобы помочь мне, я отредактирую свой пост.

Надеюсь, кто-нибудь сможет мне помочь.

Author: Angelo, 2017-01-24

2 answers

Ваш файл config.yml должен быть:

fos_user:
    db_driver: orm
    firewall_name: main
    user_class: CoreBundle\Entity\User
    registration:
        form:
            type: CoreBundle\Form\Type\RegistrationFormType

В вашем src/CoreBundle/Form/Type/RegistrationFormType.php, getParent() функция должна быть:

public function getParent()
{
    return 'FOS\UserBundle\Form\Type\RegistrationFormType';
}
 5
Author: pogeybait, 2017-01-24 14:34:18

Вероятно, вы читали документацию для "1.3.x/current", которая открыта по умолчанию. Если вы переключитесь на "2.0/master", вы увидите правильную версию документации.

 1
Author: kraz, 2017-02-16 13:38:01