FOSCommentBundle功能包:设置Doctrine ORM映射(投票)

简介:

Step 12a: Setup Doctrine ORM mapping

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 ;
     }
}

Configure your application

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 >

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

Step 12: Enable voting.

第12步:启用投票。



本文转自 firehare 51CTO博客,原文链接:http://blog.51cto.com/firehare/1259408,如需转载请自行联系原作者

相关文章
|
2月前
|
监控 开发者
确保动态导入模块按正确顺序加载
【10月更文挑战第12天】 在复杂应用开发中,确保动态导入模块按正确顺序加载至关重要,直接影响应用性能、功能和稳定性。本文深入探讨了动态模块加载顺序的影响因素、解决方案及实践案例,提供了详细的策略和方法,帮助开发者有效管理模块加载顺序,提升应用质量。
|
6月前
|
存储 SQL 数据处理
Django ORM实战:模型字段与元选项配置,以及链式过滤与QF查询详解
Django ORM实战:模型字段与元选项配置,以及链式过滤与QF查询详解
|
PHP 数据库
Laravel模型更改时间戳列名称
Laravel模型更改时间戳列名称
122 0
|
Web App开发
ORM映射框架总结--文件下载
本段代码提供了asp.net 中的各种文件下载方式。   代码   1 /**  2  * 日期:2009-3-13  3  * 作者:  4  * 功能:下载文件  5  * */  6   7 using System;  8 using System.
625 0
|
数据库
Git.Framework 框架随手记--ORM查询返回实体对象
  使用ORM有一个优势,可以通过某种机制将数据库中的数据转化为自己想要的对象形式数据。本章记录一下如何使用Git.Framework返回实体对象     一. Git.Framework 中提供的方法     在Git.
1025 0