2016-09-23 1 views
1

다른 엔티티 createDT 스탬프에 의존하는 작성하려고하는 비품이 있습니다. 그러나, 내 엔티티에서 createDT 필드를 채우는 데 @prepersist을 사용하면 '스푸핑'할 수 없습니다. 내가 참여하고있는 엔티티가 상당히 많습니다. 잠시 동안 고정/오버라이드 할 수있는 방법이 있는지 궁금합니다. 내 설비를로드하기 위해이 @prepersist을 그냥 겹쳐 씁니까?Symfony 비품 - '더미'로 날짜를 만들 수 있습니까?

/** 
* Set createDT 
* @ORM\PrePersist 
*/ 
public function setCreateDT() 
{ 
    $this->createDT = new \DateTime(); 
    return $this; 
} 

을 ... 그리고 다른 기업의 createDT에 대해 비교, 조건 아래 종류-의 방법으로 비품 '값을 지정하려고 :

내 기관 모두가

class LoadTransactionData extends AbstractFixture implements OrderedFixtureInterface { 
    public function load(ObjectManager $manager) { 
     for ($month=1; $month <= 120; $month++) { 
      $transaction = new Transaction(); 
      $date = new \DateTime(); 

      if($date->setDate(2000 + floor($month/12),$month % 12,1) < $this->getReference('AC_1')->getCreateDT()) { 
       // ...get references etc and do stuff here.... 
      } else { 
       // ...get references etc and do other stuff here... 
      } 
      $manager->persist($transaction); 
     } 
     $manager->flush(); 
    } 

업데이트 : 위의 내용이 최선이지만 가능하지 않은 경우 일부 레코드의 지속성을 지연시킬 수있는 방법이 있다면 충분할 수 있습니다.

public function __construct() 
{ 
    $this->createDT = new \DateTime(); 
} 

따라서, 당신의 비품이로드 될 때 : 그런 식으로, 나는 적어도

답변

0

하나 개의 솔루션이 생성자에서 방법을 날짜를 지정할 수 비교를 위해 두 번째 또는의 타임 스탬프 차이를 만들 수 있습니다 날짜가 무시됩니다.

+0

감사합니다 - 나는 좋은 생각처럼 보였지만 희망적 이었지만 불행히도 운이 없다! 'PrePersist'는 여전히 그것을 잡아 채 현재 DT 스탬프로 레코드를 채우고 있습니다 – Bendy

+1

감사합니다 :-) 모든 PrePersists를 연결 해제해야하는 것은 수치스럽지 만 적어도 작동합니다! – Bendy

관련 문제