• 原文出处:12b-mapping_mongodb.md

  • 原文作者:FriendsOfSymfony

  • 授权许可:创作共用协议

  • 翻译人员:FireHare

  • 校对人员:

  • 适用版本:FOSCommentBundle 2.0.5

  • 文章状态:草译阶段

Step 12b: Setup MongoDB mapping

The MongoDB implementation does not provide a concrete Vote class for your use,you must create one:

ROM实现并没有提供一个具体的Vote类给您使用,您需要创建一个:

<?php
// src/MyProject/MyBundle/Document/Vote.php
namespace MyProject\MyBundle\Document;
use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;
use FOS\CommentBundle\Document\Vote as BaseVote;
/*** @MongoDB\Document* @MongoDB\ChangeTrackingPolicy("DEFERRED_EXPLICIT")*/
class Vote extends BaseVote
{/*** @MongoDB\Id*/protected $id;/*** Comment of this vote** @var Comment* @MongoDB\ReferenceOne(targetDocument="MyProject\MyBundle\Document\Comment")*/protected $comment;
}

And you should implement VotableCommentInterface in your Comment class and add a field to your mapping:

并且您需要在您的Comment类中实现 VotableCommentInterface 接口,并添加一个字段到您的映射中:

<?php
// src/MyProject/MyBundle/Document/Comment.php
namespace MyProject\MyBundle\Document;
use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;
use FOS\CommentBundle\Document\Comment as BaseComment;
use FOS\CommentBundle\Model\VotableCommentInterface;
/*** @MongoDB\Document* @MongoDB\ChangeTrackingPolicy("DEFERRED_EXPLICIT")*/
class Comment extends BaseComment implements VotableCommentInterface
{// .. fields/*** @MongoDB\Int* @var int*/protected $score = 0;/*** Sets the score of the comment.** @param integer $score*/public function setScore($score){$this->score = $score;}/*** Returns the current score of the comment.** @return integer*/public function getScore(){return $this->score;}/*** Increments the comment score by the provided* value.** @param integer value** @return integer The new comment score*/public function incrementScore($by = 1){$this->score += $by;}

Configure your application(配置您的应用程序)

In YAML:

YAML格式:

# app/config/config.yml
fos_comment:db_driver: mongodbclass:model:vote: MyProject\MyBundle\Document\Vote

Or if you prefer XML:

如果您偏好XML:

# app/config/config.xml
<fos_comment:config db-driver="mongodb"><fos_comment:class><fos_comment:modelvote="MyProject\MyBundle\Document\Vote"/></fos_comment:class>
</fos_comment:config>

Back to the main step(返回主步骤)

Step 12: Enable voting.

第12步:启用投票。