Doctrine ORM에서 Silex를 사용하고 있지만 모든 것이 제대로 작동하고 있지만 알아낼 수없는 문제가 있습니다.Silex + Doctrine ORM은 @MappedSuperclass를 설정할 때 이벤트를 발생시키지 않습니다.
나는 doctrine을위한 몇 가지 메소드와 이벤트 전/후 메소드가 포함 된 Lpdq \ Model 네임 스페이스의 다른 클래스 News를 확장하는 네임 스페이스 Lpdq \ Model \ Entity에 엔티티 뉴스를 가지고있다.
내 기업 뉴스
<?php
namespace Lpdq\Model\Entity;
/**
* News
*
* @Table(name="news")
* @Entity(repositoryClass="Lpdq\Model\Entity\Repository\News")
*/
class News extends Lpdq\Model\News{
/*some properties/methods*/
}
내 컨트롤러에서 내 슈퍼 클래스 뉴스
<?php
namespace Lpdq\Model;
/**
* News
*
* @MappedSuperclass
* @HasLifecycleCallbacks
*/
class News{
/**
* @PrePersist
*/
public function prePersist()
{
$this->setCreated(new \DateTime());
$this->setUpdated(new \DateTime());
}
/**
* @PreUpdate
*/
public function preUpdate()
{
$this->setUpdated(new \DateTime());
}
/*...some methods...*/
}
, 나는 단지 인스턴스를 내 법인
및 지속 그것은 내 문제는<?php
namespace Lpdq\Controller;
use Silex\Application;
use Symfony\Component\HttpFoundation\Request;
use Lpdq\Model\Entity\News;
class NewsController {
public function addAction(Request $request, Application $app) {
$news = new News();
$news->setTitle('test');
/*...*/
$app['orm.em']->persist($news);
$app['orm.em']->flush();
/*...*/
}
}
높이가
/내 개체를 유지할 때 내 prePersist/preUpdate 메서드가 호출되지 않습니다. (생성 및 업데이트 된 속성이 null이므로 오류가 발생합니다)실체 News를 HasLifecycleCallbacks로 설정하고 동일한 prePersist/Update 메서드를 설정하면 해당 prePersist/Update 메서드가 트리거됩니다.
내가 여기있는 동안 사전/게시물을 넣는 엔티티를 확장하는 방법과 다른 방법이 좋든 좋지 않은지 궁금하다.