PUGXMultiUserBundle: вставить хранилище в ошибку формы регистрации

Я хотел бы иметь возможность добавить хранилище в форму регистрации (аналогично этот подход) использовать в слушателе событий, но я получаю:

Исправляемая фатальная ошибка: аргумент 1, передаваемый в AppBundle \ Form \ RegistrationType :: __ construct (), должен> быть экземпляром AppBundle \ Entity \ FocusRepository, заданная строка вызывается в G: \ Documents \ workspace> \ match \ vendor \ pugx \ multi -user-bundle \ PUGX \ MultiUserBundle \ Model \ UserDiscriminator.php в строке 155

Я могу обойти это в шаблоне, но использование прослушивателя событий показалось более элегантным решением. Какие-либо предложения?

форма

namespace AppBundle\Form;

use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use FOS\UserBundle\Form\Type\RegistrationFormType;
use AppBundle\Entity\FocusRepository;

class RegistrationType extends RegistrationFormType
{
private $focusRepo;

public function __construct(FocusRepository $focusRepo)
{
$this->focusRepo = $focusRepo;
}

public function buildForm(FormBuilderInterface $builder, array $options)
{
...
}
...
}

оказание услуг:

services:
app.focus_repository:
class: Doctrine\ORM\EntityRepository
factory_service: doctrine.orm.default_entity_manager
factory_method: getRepository
arguments:
- AppBundle\Entity\Focus

0

Решение

Ошибка возникает из-за того, что PUGXMultiUserBundle использует регистрационные (и профильные) формы FOSUserBundle. У этих форм уже есть строка (указывающая класс User) в конструкторе. Я отказался от этого вопроса и использую другой подход. Но теперь я знаю, что, возможно, я мог бы использовать проход компилятора, чтобы переопределить службу формы регистрации FOSUserBundle, чтобы разрешить дополнительный параметр. Таким образом, решение существовало, но никогда не пыталось.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]