Symfony2 FOSUserBundle自动关联到另一个实体

独白

我最近在我的网站中实现了FOSUserBundle作为登录过程。我希望它扩展Author类。因此,无论何时通过FOSUSerBundle注册新用户,都会在Author类中创建一个新条目。在Author类中,我设置了slug,createdAt和其他有用的参数。我要从FOSUserBundle传递给Authot实体的字段是“名称”字段。然后,我要层叠FOSUser实体,如果删除了它,请同时删除Author实体。

所以示意FOSUserBundle.username => Author.name

除了具有@ ORM / OneToOne关系外,我不知道如何实现此代码。有什么想法吗?

杰森·罗曼(Jason Roman)

用户注册完成后,您必须手动插入作者。FOSUserBundle提供了一种方法来挂接诸如注册完成后的事件。您可以创建FOSUserEvents::REGISTRATION_COMPLETED事件的侦听器,并在其中创建您的Author实体。

在此处查看文档:https : //github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/controller_events.md

例如:

services.yml:

services:
    my_user_registration_service:
        class: MyBundle\EventListener\MyUserRegistrationListener
        arguments: [@doctrine.orm.entity_manager]
        tags:
            - { name: kernel.event_subscriber }

MyUserRegistrationListener:

namespace MyBundle\EventListener;

use Doctrine\ORM\EntityManager;
use FOS\UserBundle\Event\FormEvent;
use FOS\UserBundle\FOSUserEvents;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use MyBundle\Entity\Author;

class EventSubscriber implements EventSubscriberInterface
{
    private $em;

    public function __construct(EntityManager $em)
    {
        $this->em = $em;
    }

    public static function getSubscribedEvents()
    {
        return array(
            FOSUserEvents::REGISTRATION_COMPLETED => 'addAuthor',
        );
    }

    public function addAuthor(FilterUserResponseEvent $event)
    {
        $user = $event->getUser();

        $author = new Author();
        $author->setName($user->getUsername();

        $this->em->persist($author);
        $this->em->flush();
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Symfony2获取另一个实体中一个实体的实体

来自分类Dev

在Symfony2上添加与另一个特定实体相关的新实体

来自分类Dev

Symfony2从与另一个oneToMany相关的实体oneToMany获取值

来自分类Dev

从Symfony2中的表单检索另一个实体

来自分类Dev

另一个实体的symfony2 php访问对象

来自分类Dev

原则2:通过关联的另一个实体的属性对关联的实体进行排序

来自分类Dev

使用FOSUserBundle自动登录Symfony2

来自分类Dev

symfony2错误分支“扩展了另一个模板的模板无法拥有实体”

来自分类Dev

Symfony2:从控制器中的另一个文件获取HTML

来自分类Dev

使用另一个symfony2项目作为供应商

来自分类Dev

来自另一个控制器的Symfony2呼叫控制器

来自分类Dev

Symfony2配置-另一个data.timezone错误

来自分类Dev

调用Symfony2中另一个Bundle的函数

来自分类Dev

Symfony2 FOSUserBundle错误-FileLoaderImportCircularReferenceException

来自分类Dev

覆盖FOSUserBundle路由Symfony2

来自分类Dev

Symfony2 FOSUserBundle登录表单样式

来自分类Dev

Symfony2:FOSUserBundle删除操作错误

来自分类Dev

Symfony2 FosUserBundle正在丢失会话

来自分类Dev

Symfony2学说关联结果

来自分类Dev

Symfony2学说关联结果

来自分类Dev

Symfony2实体与列的关系

来自分类Dev

空的继承实体Symfony2

来自分类Dev

Symfony2从请求创建实体

来自分类Dev

动态表单(开关实体)symfony2

来自分类Dev

具有CRUD的Symfony2实体

来自分类Dev

Symfony2学说实体未水合

来自分类Dev

Symfony2可重用实体

来自分类Dev

Symfony2:从集合中间删除实体

来自分类Dev

Symfony2:向实体添加方法