我正在学习 Yii,我想知道我是否使用 Gii 生成模型和 CRUD 文件,然后我手动修改了这些文件,然后我更改了我的数据库,我应该再次运行 Gii 吗?它会覆盖我在模型文件中的更改吗?如果是这样,在不丢失我以前的更改的情况下更新我的模型、控制器和视图文件以反映数据库中的更改的最佳解决方案是什么?
问问题
855 次
2 回答
5
Gii 旨在为您提供一开始的基本代码,然后您对其进行修改以满足您的需求。
是的,如果您再次运行它,它将覆盖您的文件(但您需要明确选中“覆盖”复选框)。
所以推荐的做法是先尽可能完整地设计数据库结构,然后用 Gii 生成模型/CRUD/。
然后在没有 Gii 的情况下手动完成后续更改。
一个小提示:如果你再次运行 Gii,你可以在 diff 中查看更改并手动复制它们。
一旦您获得更多经验,您很可能会意识到没有必要这样做。
于 2015-06-02T03:06:54.717 回答
2
您问题的真正解决方案是由 Gii 生成所有初始模型,并将它们保持在单独的目录中,例如 app\models\base
并将这些模型命名为 ModelNameBase
在 app\models 创建您自己的模型,例如 ModelName 让 app\models 扩展基本模型。
这样,您可以根据需要修改 app\models。
每当您有数据库更改时,请重新生成基本模型。
于 2018-12-16T06:31:45.913 回答