Step 6: Integration with FOSUserBundle

By default, comments are made anonymously.FOSUserBundle authentication can be used to sign the comments.

缺省情况下,评论是匿名的。FOSUserBundle 认证可以用来标识评论。

A) Setup FOSUserBundle(安装FOSUserBundle)

First you have to setup FOSUserBundle. Check the instructions.

首先您需要安装 FOSUserBundle。请参阅说明

B) Extend the Comment class(扩展评论类)

In order to add an author to a comment, the Comment class should implement the SignedCommentInterface and add a field to your mapping.


For example in the ORM:


// 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();

That is it!

Return to the index.