2

我想弄清楚的是如何使用 Symfony2 和 Doctrine2 向表中添加新字段。

我用它来最初创建实体:

php app/console doctrine:generate:entity --entity="MyMainBundle:ImagesTable" --fields="title:string(100) file:string(100)"

我用它来创建/更新数据库上的表:

php app/console doctrine:schema:update --force

现在,如果我想向ImagesTable实体添加新字段,是否有一种简单的方法可以使用console,或者我必须手动编辑实体。我现在只是以 1 个实体为例,但实际上,我要更改许多实体;所以,必须有一个更简单的方法来做到这一点。

我一直在手动编辑它们以创建关系,所以如果也有更简单的方法来做到这一点,那就太好了。

我记得使用 Symfony1.4 时这要容易得多——我所要做的就是使用 phpMyAdmin 创建数据库/表,Symfony 能够毫无问题地生成模型。

我真的希望我在这里遗漏了一些东西,因为如果我必须为每次更改手动编辑每个实体,这将不起作用。

4

1 回答 1

1

Doctrine 生成器命令旨在帮助开发人员快速原型化一个想法。他们通常不会生成生产就绪代码,需要检查代码以查看它是否包含您想要的内容。

您仍然可以在 phpmyadmin 中创建模型并使用Doctrine 逆向工程工具,但它也不会生成生产就绪代码,仅用于原型设计。

事先创建数据库/表在 Doctrine2 中并不能很好地工作,因为表之间的基础关系可能与模型对象之间的关系不同。ORM 的全部意义在于在课堂上思考并让 Doctrine 为您完成其余的工作。

Doctrine 的目的不是为您编写实体,它为您提供构建数据模型的工具,您可以使用这些工具在 Php 中编写模型。

如果您不喜欢手动编写实体代码(这是所有使用教义的开发人员所做的),您可能想看看RedbeanPHP,这是一个 PHP 的零配置 ORM 框架。它根据您使用的数据模型动态创建数据库表、列和索引。

于 2012-04-12T03:28:35.607 回答