博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
FOSCommentBundle功能包:设置Doctrine ORM映射(投票)
阅读量:7078 次
发布时间:2019-06-28

本文共 2564 字,大约阅读时间需要 8 分钟。

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(返回主步骤)

.

第12步:启用投票。

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

你可能感兴趣的文章
ADB环境变量的配置
查看>>
C primer plus 练习题 第七章
查看>>
virtualbox 创建com对象失败
查看>>
几种常见模式识别算法整理和总结
查看>>
sharepoint项目遇到的WebDAV和HTTP PUT的安全隐患解决办法
查看>>
JAVA Metrics度量工具 - Metrics Core 翻译
查看>>
汇编之FS段寄存器
查看>>
设计模式(十):Decorator装饰者模式 -- 结构型模式
查看>>
Orchard Application Host
查看>>
DIOCP3-DIOCP1升级到DIOCP3
查看>>
SQL Server 中WITH (NOLOCK)浅析
查看>>
09网易校园招聘笔试题
查看>>
。一个通俗易懂的HMM例子
查看>>
freeswitch 挂断前执行脚本
查看>>
EffectManager
查看>>
python packages prebuild for windows
查看>>
这样就算会了PHP么?-10
查看>>
远程调用WMI安装软件
查看>>
从零开始学习jQuery (七) jQuery动画-让页面动起来!
查看>>
asp.net 操作word
查看>>