2012-04-02 9 views
0

が、私はこのクラスを持っている:prePersist nullオブジェクトをチェックする

* @ORM\Entity 
* @ORM\HasLifecycleCallbacks() 
class Parameter{ 

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

    /** 
    * @ORM\ManyToOne(targetEntity="Project\Bundle\Entity\Anthropometry", inversedBy="parameter") 
    * @ORM\JoinColumn(name="anthropometry_id", referencedColumnName="id") 
    * 
    */ 
    protected $anthropometry; 

    /** 
    * @ORM\Column(name="data", type="string", length=255, nullable=true) 
    */ 
    protected $data; 
    ... 

} 

と、この:私のコントローラで

/** 
* @ORM\Table(name="anthropometry") 
* @ORM\Entity 
*/ 
class Anthropometry { 
/** 
* @var integer $id 
* 
* @ORM\Column(name="id", type="integer") 
* @ORM\Id 
* @ORM\GeneratedValue(strategy="AUTO") 
*/ 
protected $id; 

/** 
* 
* @ORM\OneToMany(targetEntity="Project\Bundle\Entity\Parameter", mappedBy="anthropometry", cascade={"persist"}) 
* 
*/ 
protected $parameter; 

    ... 
} 

私は、フォームを作成し、同じアクションで検証しています。 フォームを作成するにはインスタンス1のパラメータが必要です。しかし、彼を維持する必要はありません。私はエラーを得た>フラッシュ$ EM-を呼び出すとき

..だから:

A new entity was found through the relationship ...

はこれを解決するために私が入れカスケード= { "持続"}注釈で:

//Class Anthropometry 
... 
/** 
* 
* @ORM\OneToMany(targetEntity="Project\Bundle\Entity\Parameter", mappedBy="anthropometry", cascade={"persist"}) 
* 
*/ 
protected $parameter; 

しかし、私のデータベースでは、パラメータはフィールド 'Data' = NULLで維持されています

フィールドが永続化される前にNULLである場合、prePersistでチェックできますか?

このようなものはありますか?

//class Parameter 
/** 
* 
* @ORM\prePersist 
*/ 
public function prePersist(){ 
    if($this->getData() == NULL){ 
     return false; 
    } 
} 

Thx!

答えて

0

それが動作するかどうかは確認されませんでしたが、あなたは(あなたがパラメータを保持する必要がないので)人体測定を永続化する前にパラメータを設定解除を試みることができる:

//class Anthropometry 
/** 
* @ORM\prePersist 
*/ 
public function prePersist() 
{ 
    if(!is_null($this->parameter) && $this->parameter->getData() == null){ 
     $this->parameter = null; 
    } 
} 
+0

私が開発していたプロジェクトがために停止しますしばらく。しかし、私はこれがうまくいくと思います。どうも!! – Munir

関連する問題