gpt4 book ai didi

Symfony2 重写 Controller

转载 作者:行者123 更新时间:2023-12-02 12:08:45 28 4
gpt4 key购买 nike

我使用 FOSUserBundle 并且我想覆盖他的 registerAction Controller 。我阅读了与覆盖 FOSUserBundle Controller 相关的文档,但它不起作用。通过在 Controller 中回显一条小消息,它不会在模板中打印。

这是我选择的方式:

我从 FOSUserBundle 继承了我的包:

namespace Jheberg\MembersBundle;

use Symfony\Component\HttpKernel\Bundle\Bundle;

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

并且我覆盖了 bundle Controller 目录中名为 RegistrationController.php 的文件中的 registerAction :

namespace Jheberg\MembersBundle\Controller;

use FOS\UserBundle\Controller\RegistrationController as BaseController;

class RegistrationController extends BaseController
{
public function registerAction()
{
echo 'foo';
$response = parent::registerAction();

// do custom stuff

return $response;
}
}

你有解决办法吗?

最佳答案

我花了几个小时试图让它工作,终于弄清楚了。我缺少的部分是使用 MyUserBundle 中的 User 实体扩展我的 User 类。例如:

namespace MyNamespace\MyMainBundle\Entity;

use MyNamespace\MyUserBundle\Entity\User as BaseUser;

class User extends BaseUser
{
}

User 实体与 FOSUserBundle 中的实体相同(只是命名空间不同)。

namespace MyNamespace\MyUserBundle\Entity;

use FOS\UserBundle\Model\User as AbstractUser;

abstract class User extends AbstractUser
{
}

如果我不这样做,正如 Jeffrey 提到的,MyUserBundle 根本就不会被使用(就好像它不存在一样)。现在我所有覆盖的 View 、 Controller 等都被使用了。希望这会有所帮助。

关于Symfony2 重写 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10071965/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com