我知道要从symfony 4中的现有数据库生成实体,只需执行以下命令:
> php bin/console doctrine:generate:entities
但是这个命令不会生成getter setter,只是从列生成变量。
当然我必须使用一些肮脏的工作来手动创建它。
可能是我错过了阅读文档,如何使用doctrine symfony 4从现有数据库生成实体getter setter?
答案 0 :(得分:5)
要从现有数据库生成实体类,您需要让Doctrine内省数据库并生成相应的元数据文件。元数据文件描述了基于表字段生成的实体类。
> php bin/console doctrine:mapping:import App\\Entity annotation --path=src/Entity
此命令将生成带有注释元数据的新PHP类到src / Entity中 要生成缺少的getter / setter方法(或者在必要时创建类),请运行:
> php bin/console make:entity --regenerate App
答案 1 :(得分:1)
DOC says: "如果您希望手动添加新属性,则make:entity命令可以生成getter&你的setter方法:
php bin/console make:entity --regenerate
如果你做了一些改变并希望重新生成所有的getter / setter方法,那么也要传递--overwrite。"
另请注意,使用Symfony 3(我不是关于v4),doctrine:generate:entities
不适用于protected
属性
答案 2 :(得分:0)
要从现有数据库执行此操作,您可以使用逆向工程。请按照以下步骤操作:
2.1。使用以下命令从配置的数据库创建实体:
php bin/console doctrine:mapping:convert --from-database annotation ./src/Entity
2.2。如果要为一个特定的表创建实体:
php bin/console doctrine:mapping:convert --from-database --filter="Tablename" annotation ./src/Entity
如果你使用vim,你可以添加安装php-getter-setter.vim插件的getter和setter并输入每个实体:
:%InsertBothGetterSetter
您必须在每个实体中手动添加:
命名空间App \ Entity;