Doctrine ORM:使用关系自动生成/更新

时间:2015-08-06 11:40:42

标签: symfony orm doctrine-orm doctrine

很容易为学说自动生成模型。

php vendor/bin/doctrine orm:generate-entities

或者从现有数据库导入它     php app / console doctrine:mapping:import --force AcmeBlogBu​​ndle xml

但命令只生成我的映射。它也有机会用关系生成类。

因此模型具有类似的方法。

/** @OneToMany(targetEntity="Comment", mappedBy="article") */
private $comments;

public function __construct()
{
    $this->comments = new ArrayCollection();
}

使用update-entities或regenerate-entities等选项?

php doctrine orm:generate-entities --update-entities
php doctrine orm:generate-entities --regenerate-entities

有没有这样的工具?我的用例是一个cms,用户可以轻松地从配置文件中生成自己的数据模型。他不应该被迫用关系写自己的班级 (内容管理员的错误修剪)。

2 个答案:

答案 0 :(得分:0)

Documentation of Doctrine提到该学说只能生成70-80%的映射信息。这意味着它无法检测反向关联,继承类型,具有外键的实体。您需要为此做一些额外的工作。但我同意这对任何未来的学说版本来说都是一个很好的特性。

我的建议是不要总是依赖学说的进口。

答案 1 :(得分:0)

如果您使用的是Symfony 2,可以尝试使用命令

php app/console doctrine:generate:entities

其文件说

  

从映射信息生成实体类和方法存根

我从未使用它,所以我不知道它是否能够检测并产生关系。