2011-09-09 6 views
3

すべてのフィールドがプライベートである場合、Doctrine2エンティティを保存する方法は?それには何らかの仕組みがありますか?Doctrine2エンティティを保存する方法

は、どのように私はこれを保存することができます:

/** 
* @Entity 
*/ 
class SomeEntity 
{ 
    /** @Id @Column(type="integer") @GeneratedValue */ 
    private $id; 

    /** @Column */ 
    private $title; 

} 

方法例えばtitleを変更するには?おそらくEntityManager経由で可能でしょうか?

PS:

$entity = new SomeEntity(); 
$entity->setTitle('title'); 
$em->persist($entity); //$em is an instance of EntityManager 
$em->flush(); 

Этоправильныйспособ:このような事前のおかげで

答えて

8
class SomeEntity 
{ 
    /** @Id @Column(type="integer") @GeneratedValue */ 
    private $id; 

    /** @Column */ 
    private $title; 

    public function setTitle($title){ 
     $this->title = $title; 
    } 
} 

を使用。 АтакможноивоутренностиДоктриныполезть、אאוקאאאיקלאוןאיקтриныполезть、אскиймануалынечитать。 :)

+0

私は多くのエンティティのそれぞれでそれを行う必要があるので、これは適切ではありません。 Знаю、знаютакойспособ、нооннеподходит、потомучтотакмневсёравнопридётсялезтьвдоктринучтобынаучитьеёгенерить集合{ИМЯ}методыдлякаждойсущностиилиручкамивсотне-другойтаблицэтоделать。 Ядумалестькакой-тодругойспособ。 – ajile

+0

しかし、それは....ベストプラクティスなどで動作するはずです。 – Flukey

1
public function __get($property) 
{ 
    return $this->$property; 
} 

public function __set($property,$value) 
{ 
    $this->$property = $value; 
} 
1

ゲッターとセッターを定義する必要があります。これを手動またはコンソールで行うことができます:

php app/console doctrine:generate:entities Acme/StoreBundle/Entity/SomeEntity 
関連する問題