如果所有字段都是私有的,如何保存Doctrine2 Entity?是否有某种机制可以做到这一点?
如何保存:
/**
* @Entity
*/
class SomeEntity
{
/** @Id @Column(type="integer") @GeneratedValue */
private $id;
/** @Column */
private $title;
}
如何更改title
例如?也许它可以通过EntityManager?
PS:提前致谢
答案 0 :(得分:9)
class SomeEntity
{
/** @Id @Column(type="integer") @GeneratedValue */
private $id;
/** @Column */
private $title;
public function setTitle($title){
$this->title = $title;
}
}
像这样使用:
$entity = new SomeEntity();
$entity->setTitle('title');
$em->persist($entity); //$em is an instance of EntityManager
$em->flush();
Этоправильныйспособ。 АтакможноивовнутренностиДоктриныполезть,еслимануалынечитать。 :)
答案 1 :(得分:1)
public function __get($property)
{
return $this->$property;
}
public function __set($property,$value)
{
$this->$property = $value;
}
答案 2 :(得分:1)
如上所述,您应该定义getter和setter。您可以手动或在控制台上执行此操作:
php app/console doctrine:generate:entities Acme/StoreBundle/Entity/SomeEntity