0

我在 Symfony2.1 应用程序中使用自定义 UserProvider 进行身份验证。我想使用 FOSCommentBundle 来实现评论。但是当涉及到评论作者的评论时,我被卡住了。

基本上,我有两个数据库。我可以从中检索用户的凭据(用户名、盐、密码……)但我不能进行任何修改,另一个我可以用来存储用户信息(如她/他的评论) ) 在用户实体中。

当我将 Comment 实体与此 User 实体映射时,会出现问题,因为 FOSCommentBundle 检索的是实现 UserInterface 的实体(在我的安全包中)而不是此 User 实体。

基本上,有没有办法告诉 FOSCommentBundle 检索另一个用户实体而不是用于身份验证的实体?

谢谢

4

1 回答 1

0

您是否尝试过 FOSUserBundle 与 FOSCommentsBundle 的集成

您需要像这样实现 SignedCommentInterface 。

<?php
// src/MyProject/MyBundle/Entity/Comment.php

namespace MyProject\MyBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use FOS\CommentBundle\Entity\Comment as BaseComment;
use FOS\CommentBundle\Model\SignedCommentInterface;
use Symfony\Component\Security\Core\User\UserInterface;

/**
 * @ORM\Entity
 */
class Comment extends BaseComment implements SignedCommentInterface
{
    // .. fields

    /**
     * Author of the comment
     *
     * @ORM\ManyToOne(targetEntity="MyProject\MyBundle\Entity\User")
     * @var User
     */
    protected $author;

    public function setAuthor(UserInterface $author)
    {
        $this->author = $author;
    }

    public function getAuthor()
    {
        return $this->author;
    }

    public function getAuthorName()
    {
        if (null === $this->getAuthor()) {
            return 'Anonymous';
        }

        return $this->getAuthor()->getUsername();
    }
}
于 2013-11-28T09:35:30.050 回答