Orm Doctrine2填充关系生成空值
我对教义2的关系和事件有问题 我有这样的关系:Orm Doctrine2填充关系生成空值,orm,doctrine-orm,entity-relationship,Orm,Doctrine Orm,Entity Relationship,我对教义2的关系和事件有问题 我有这样的关系: id;user_id;point;date;game_id 6;17;-1;2014-03-26 15:02:01;NULL 要点: My\Entity\Point: type: entity table: null manyToOne: user: targetEntity: User game: targetEntity: Game fields: id: type: i
id;user_id;point;date;game_id
6;17;-1;2014-03-26 15:02:01;NULL
要点:
My\Entity\Point:
type: entity
table: null
manyToOne:
user:
targetEntity: User
game:
targetEntity: Game
fields:
id:
type: integer
id: true
generator:
strategy: AUTO
point:
type: integer
date:
type: datetime
lifecycleCallbacks: { }
游戏:
因此:
- 一个用户可以有多个游戏
- 一场比赛可以得很多分
- 一分只能与一场比赛相关
- 一个用户可以有多个点
/**
* @param LifecycleEventArgs $args
*/
public function preUpdate(LifecycleEventArgs $args) {
$entity = $args->getEntity();
if ($entity instanceof Game && $args->hasChangedField('win')) {
$this->point->setUser($entity->getUser());
$this->point->setGame($entity);
switch(true){
case $args->getNewValue('win'):
$this->point->setPoint(1);
break;
case $args->getOldValue('win'):
$this->point->setPoint(-1);
break;
default:
break;
}
$this->haveToBeFlush = true;
}
}
/**
* @param PostFlushEventArgs $eventArgs
*/
public function postFlush(PostFlushEventArgs $eventArgs)
{
if ($this->haveToBeFlush === true) {
$eventArgs->getEntityManager()->persist($this->point);
$eventArgs->getEntityManager()->flush();
}
}
- 如果用户赢/输了游戏,我想为他创建点(1/-1)
id;user_id;point;date;game_id
6;17;-1;2014-03-26 15:02:01;NULL
我不知道,为什么游戏id出现空值,好了,现在一切都清楚了 首先,我认为当我使用实体时会出现这个问题,我已经为实体创建了事件监听器“postUpdate”。我错了 问题在于缓存。清除缓存并重新启动apache后,一切正常