Php 覆盖默认FOSUserBundle表单:InvalidArgumentException
我正在使用它覆盖默认的FOSUserBundle表单。但是,当我试图重写表单处理程序时,出现了以下错误: InvalidArgumentException:服务定义 “test_user.form.handler.registration”不存在 文件列表:Php 覆盖默认FOSUserBundle表单:InvalidArgumentException,php,symfony,symfony-2.1,Php,Symfony,Symfony 2.1,我正在使用它覆盖默认的FOSUserBundle表单。但是,当我试图重写表单处理程序时,出现了以下错误: InvalidArgumentException:服务定义 “test_user.form.handler.registration”不存在 文件列表: <?php // src/Test/UserBundle/Form/Handler/RegistrationFormHandler.php namespace Test\UserBundle\Form\Handler; use
<?php
// src/Test/UserBundle/Form/Handler/RegistrationFormHandler.php
namespace Test\UserBundle\Form\Handler;
use FOS\UserBundle\Form\Handler\RegistrationFormHandler as BaseHandler;
use FOS\UserBundle\Model\UserInterface;
class RegistrationFormHandler extends BaseHandler
{
protected function onSuccess(UserInterface $user, $confirmation)
{
// logic here...
parent::onSuccess($user, $confirmation);
}
}
=-=-=-=-=
# src/Test/UserBundle/Resources/config/services.yml
services:
test_user.form.handler.registration:
class: Test\UserBundle\Form\Handler\RegistrationFormHandler
arguments: ["@fos_user.registration.form", "@request", "@fos_user.user_manager", "@fos_user.mailer", "@fos_user.util.token_generator"]
scope: request
public: false
# app/config/config.yml
fos_user:
db_driver: orm
firewall_name: dev
user_class: Test\UserBundle\Entity\User
registration:
form:
handler: test_user.form.handler.registration
是的,我读过类似的问题,但问题与我的不同。仔细查看
services.yml
中的最后一行。它表示public:false
,也就是说,无法从代码访问此服务(请参阅)。您可以执行以下两种操作之一:将public
的值更改为true
,或者删除该行,因为默认值为true
。问题很简单。我手动创建了我的unsorbundle
,因此名为DependencyInjection
的文件夹尚未创建。此文件夹包含加载服务配置的php文件。否,它与public:false
一起工作。顺便说一下,我知道了。看看我自己的答案,问题很简单。我手动创建了我的unsorbundle
,因此名为DependencyInjection
的文件夹尚未创建。此文件夹包含加载服务配置的php文件。