我是Symfony的新手。我想使用LifeCycle回调。我花了很多时间让它上班,但没有成功。我阅读了文档和更多来源,并多次写到那里。
我在yml中有定义。然后我通过orm创建实体:generate ...这个过程为我创建了空的setUpdateTimestamp()函数。我修改了这个功能,但是当我更新时,我看不到变化。
BaseBundle\Entity\Person:
type: entity
table: people
fields:
id:
id: true
type: integer
nullable: false
generator:
strategy: IDENTITY
first_name:
type: string
length: 32
nullable: true
last_name:
type: string
length: 32
nullable: true
updatedAt:
type: datetime
nullable: false
lifecycleCallbacks:
preUpdate: [ setUpdateTimestamp ]
和
/**
* Person
*
* @ORM\Table(name="people")
* @ORM\Entity
* @ORM\HasLifecycleCallbacks
*/
class Person extends BaseBundle\Entity\Base\BaseEntity
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
protected $id;
/**
* @var \DateTime
*
* @ORM\Column(name="updated_at", type="datetime", nullable=false)
*/
protected $updatedAt;
...........
/**
* @ORM\PreUpdate
*/
public function setUpdateTimestamp()
{
$this->setUpdatedAt(new \DateTime());
}
我的问题在哪里?我有什么问题吗?
编辑: 我用于创建实体和创建迁移文件。
php app/console orm:generate-super-entities --generate-annotations=1 --regenerate-entities=1 --extend="BaseBundle\Entity\Base\BaseEntity" --super-dest-path="src" --super-dest-namespace="Generated" src
php app/console doctrine:migrations:diff --configuration src/BaseBundle/Resources/config/doctrine-migrations-config.yml $@
答案 0 :(得分:1)
我没有意识到在apc缓存中它也可以是某种东西。重新启动apache2服务后,它开始工作。