dop2144 2015-10-07 22:51
浏览 33
已采纳

PUGXMultiUserBundle:将存储库注入注册表单错误

I would like to be able to inject a repository into a registration form (similar to this approach) to use in an event listener but I get:

Catchable Fatal Error: Argument 1 passed to AppBundle\Form\RegistrationType::__construct() must > be an instance of AppBundle\Entity\FocusRepository, string given, called in G:\Documents\workspace> \match\vendor\pugx\multi-user-bundle\PUGX\MultiUserBundle\Model\UserDiscriminator.php on line 155

I can work around this in a template but using an event listener seemed a more elegant solution. Any suggestions?

form

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)
    {
   ...
    }
   ...
}

service:

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

1条回答 默认 最新

  • doukaojie8573 2015-10-27 22:49
    关注

    The error occurs because PUGXMultiUserBundle uses FOSUserBundle registration (and profile) forms. Those forms already have a string (indicating the class of User) in the constructor. I've abandoned this question and am using a different approach. But I now know that I perhaps could have used a Compiler Pass to override the FOSUserBundle registration form service to allow an additional parameter. So a solution existed but was never tried.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 使用C#,asp.net读取Excel文件并保存到Oracle数据库
  • ¥15 C# datagridview 单元格显示进度及值
  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配