如何保存Doctrine2实体

时间:2011-09-09 09:29:03

标签: php orm save doctrine-orm

如果所有字段都是私有的,如何保存Doctrine2 Entity?是否有某种机制可以做到这一点?

如何保存:

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

    /** @Column */
    private $title;

}

如何更改title例如?也许它可以通过EntityManager?

PS:提前致谢

3 个答案:

答案 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