嘿。 我很难在我的config / doctrine / schema.yml文件中迁移我所做的更改。
我将列 age
添加到 user
表中。然后我做了 php symfony doctrine:generate-migrations-diff
,然后是 php symfony doctrine:migrate
。
查看我的数据库,现在添加了列 age
,但未删除任何数据。
但是,我的/lib/model/doctrine/base/BaseUser.class.php未更改, age
没有 age
字段或函数。所以我也做了命令 php symfony doctrine:build-model
。最后,模型也会更新/迁移。
所以我想知道,这是唯一的方法吗?看起来好像很多工作,每次做这件事我都不敢错过。
我可以直接进入phpmyadmin,在那里添加数据库中的更改,只需执行 php symfony doctrine:build-schema
,就像跳过迁移部分(两个命令)一样。
此外,当使用模型时,我是否正确/lib/model/doctrine/User.class.php是我可以为我的用户“数据类”创建函数的地方?比如,创建一个函数 isFemale
。如果没有,这种功能在哪里?
这可能是一个糟糕的问题,但为什么模型层位于/ lib / doctrine路径中?据我所知,您将模块保存在应用程序中,您可以在其中创建视图和控制器。为什么模型应该在外面。像这样我可以制作没有连接控制器和视图的模型吗?
感谢。
答案 0 :(得分:8)
为什么模型应该在外面
因为模型可以在项目的任何地方使用,例如,在不同的应用程序和模块中使用。
我可以直接进入phpmyadmin,在那里添加数据库中的更改,只需执行php symfony doctrine:build-schema,就像跳过迁移部分(两个命令)一样。
当然可以,但迁移是在部署到生产或在团队中工作时跟踪架构的好方法。
这里我如何使用doctrine迁移(简单用例):
age
模型中添加User
列
schema.yml
。已生成迁移类(-es)。./symfony doctrine:generate-migrations-diff
。列./symfony doctrine:migrate
已成功添加到表格中。age
。构建表单/过滤器/模型就是这样。主要思想是./symfony doctrine:build --all-classes
类:
doctrine:generate-migrations-diff
和信息(1)此外,当使用模型时,我是否正确/lib/model/doctrine/User.class.php是我可以为我的用户“数据类”创建函数的地方?就像,制作一个功能是女性。如果没有,这种功能会在哪里?
是的,您可以将此类方法添加到schema.yml
模型中,因为它与用户有关。