2017-02-20 8 views
0

codeというプロパティを持つQuestionエンティティを持っています。私はcodeの値をDoctrineアノテーションでデフォルトでidに設定したいと思います。Symfony + Doctrine - プロパティのデフォルト値をIDと同じに設定します

これは、私が試した方法ですが、私はエラーを取得しています:

/** 
* @ORM\Column(type="integer") 
* @ORM\Id 
* @ORM\GeneratedValue(strategy="AUTO") 
*/ 
private $id; 

/** 
* @ORM\Column(type="integer") 
*/ 
private $code = $id; 

または:

/** 
* @ORM\Column(type="integer") 
* @ORM\Id 
* @ORM\GeneratedValue(strategy="AUTO") 
*/ 
private $id; 

/** 
* @ORM\Column(type="integer", options = {"default": $id}) 
*/ 
private $code; 

感謝。

+0

IDを複製する目的は何ですか? – OlivierC

答えて

2

http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/events.html

私はあなたの必要性が何であるか知らないが、多分postPersistイベントはあなたが望むものである:あなたのエンティティで次に

postPersist - The postPersist event occurs for an entity after the entity has been made persistent. It will be invoked after the database insert operations. Generated primary key values are available in the postPersist event.

/** 
* @ORM\Column(type="integer") 
* @ORM\Id 
* @ORM\GeneratedValue(strategy="AUTO") 
*/ 
private $id; 

/** 
* @ORM\Column(type="integer") 
*/ 
private $code; 

/** @PostPersist */ 
public function doStuffOnPostPersist() 
{ 
    $this->code = $this->id; 
} 

それはにとって重要ですあなたの教義主体は、永続化された後にのみ、したがってポスト持続イベントの後にIDを有することを理解する。

関連する問題