Ошибка контейнера PUGXMultiUserBundle

Я установил PUGXMultiUserBundle, используя этот документация, и я следую этому, но у меня есть ошибка

Ошибка типа: аргумент 1, переданный в FOS \ UserBundle \ Controller \ RegistrationController :: __ construct (), должен реализовывать интерфейс Symfony \ Component \ EventDispatcher \ EventDispatcherInterface, не задано ... Ошибка контейнера PUGXMultiUserBundle

fos_user:
db_driver: orm
firewall_name: main
user_class: AppBundle\Entity\User
service:
        user_manager: pugx_user_manager
from_email:
        address: "%mailer_user%"
        sender_name: "%mailer_user%"
pugx_multi_user:
users:
      simple_user:
          entity:
              class: AppBundle\Entity\SimpleUser
          registration:
              form:
                  type: AppBundle\Form\SimpleUserType
                  name: fos_user_registration_form
                  validation_groups:  [Registration, Default]
              template: AppBundle:Registration:simple_user.form.html.twig
society_user:
          entity:
              class: AppBundle\Entity\SocietyUser
          registration:
              form:
                  type: AppBundle\Form\SocietyUserType
                  name: fos_user_registration_form
                  validation_groups:  [Registration, Default]
              template: AppBundle:Registration:society_user.form.html.twig

а это мой RegistrationSimpleUserController:

/**
 * Class RegistrationSimpleUserController
 * @package AppBundle\Controller
 *
 */
class RegistrationSimpleUserController extends Controller
{
    /**
     * @return mixed
     *
     *
     * @Route("/register/simple", name = "registration_simple_user")
     */
    public function registerAction()
    {
        return $this->container
            ->get('pugx_multi_user.registration_manager')
            ->register('Acme\UserBundle\Entity\UserOne');
    }
}

Какую версию Symfony вы используете?

Jim Panse 04.07.2018 14:37

я использую Symfony 3

Koera Sam Mikorana 04.07.2018 14:40
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
46
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я думаю, что это ошибка в пакете PUGX, который не обновлен.

Они определяют контроллер регистрации FOSUserBundle как такую ​​службу:

pugx_multi_user.registration_controller:
      class: FOS\UserBundle\Controller\RegistrationController

Но RegistrationController в FOSUserBundle имеет некоторые зависимости:

public function __construct(EventDispatcherInterface $eventDispatcher, FactoryInterface $formFactory, UserManagerInterface $userManager, TokenStorageInterface $tokenStorage)
{
    $this->eventDispatcher = $eventDispatcher;
    $this->formFactory = $formFactory;
    $this->userManager = $userManager;
    $this->tokenStorage = $tokenStorage;
}

Я думаю, вы можете решить эту проблему, определив псевдоним следующим образом:

pugx_multi_user.registration_controller:
     alias: fos_user.registration.controller

Или переопределить все определение в вашем собственном services.yml:

pugx_multi_user.registration_controller:
  class: FOS\UserBundle\Controller\RegistrationController
  arguments:
        - '@event_dispatcher'
        - '@fos_user.registration.form.factory'
        - '@fos_user.user_manager'
        - '@security.token_storage'

Это работает, но мой шаблон по-прежнему является регистрацией fosuser, а не моим обществом_user.form.html.twig или simple_user.form.html.twig

Koera Sam Mikorana 05.07.2018 07:36

Проверьте значение, которое вы передаете -> register ('Acme \ UserBundle \ Entity \ UserOne'), которое по-прежнему является примером значения, должно быть: "AppBundle \ Entity \ SimpleUser", я думаю?

Jeroen 05.07.2018 09:02

Другие вопросы по теме