本文共 2564 字,大约阅读时间需要 8 分钟。
The ORM implementation does not provide a concrete Vote class for your use,you must create one. This can be done by extending the abstract entities provided by the bundle and creating the appropriate mappings.
ROM实现并没有提供一个具体的Vote类给您使用,您需要创建一个。这可以通过扩展功能包提供的抽象实体并创建一个相应的映射来实现。
For example:
例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <?php // src/MyProject/MyBundle/Entity/Vote.php namespace MyProject\MyBundle\Entity; use Doctrine\ORM\Mapping as ORM; use FOS\CommentBundle\Entity\Vote as BaseVote; /** * @ORM\Entity * @ORM\ChangeTrackingPolicy("DEFERRED_EXPLICIT") */ class Vote extends BaseVote { /** * @ORM\Id * @ORM\Column(type="integer") * @ORM\generatedValue(strategy="AUTO") */ protected $id ; /** * Comment of this vote * * @var Comment * @ORM\ManyToOne(targetEntity="MyProject\MyBundle\Entity\Comment") */ protected $comment ; } |
And you should implement VotableCommentInterface in your Comment class and add a field to your mapping:
并且您需要在您的Comment类中实现 VotableCommentInterface 接口,并添加一个字段到您的映射中:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | <?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\VotableCommentInterface; /** * @ORM\Entity */ class Comment extends BaseComment implements VotableCommentInterface { // .. fields /** * @ORM\Column(type="integer") * @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 ; } } |
1 2 3 4 5 6 | # app/config/config.yml fos_comment: db_driver: orm class : model: vote: MyProject\MyBundle\Entity\Vote |
Or if you prefer XML:
如果您偏好XML:
1 2 3 4 5 6 7 8 | # app/config/config.xml < fos_comment:config db-driver = "orm" > < fos_comment:class > < fos_comment:model vote = "MyProject\MyBundle\Entity\Vote" /> </ fos_comment:class > </ fos_comment:config > |
.
第12步:启用投票。
本文转自 firehare 51CTO博客,原文链接:http://blog.51cto.com/firehare/1259408,如需转载请自行联系原作者