在更新模型文件后使用 Gii
Using Gii afer updating model files
我正在学习 Yii,我想知道我是否使用 Gii 生成模型和 CRUD 文件,然后我手动修改了这些文件,然后我更改了我的数据库,我应该再次 运行 Gii 吗?它会覆盖我在模型文件中的更改吗?如果是这样,更新我的模型、控制器和视图文件以反映数据库中的更改而不丢失我以前的更改的最佳解决方案是什么?
Gii 的设计目的是在开始时为您提供基本代码,然后您可以根据需要对其进行修改。
是的,如果您再次 运行 它会覆盖您的文件(但您需要明确选中 "Override" 复选框)。
所以推荐的做法是先设计尽可能完整的数据库结构,然后用Gii生成模型/CRUD/。
然后在没有 Gii 的情况下手动完成后续更改。
小提示:如果你再次运行 Gii,你可以在diff中查看变化并手动复制它们。
一旦你获得更多经验,很可能你会意识到没有必要这样做。
您问题的真正解决方案是通过 Gii 生成所有初始模型,并将它们原封不动地保存在单独的目录中,例如 app\models\base
并将这些模型命名为 ModelNameBase
在 app\models 创建您自己的模型,例如 ModelName
让 app\models 扩展基本模型。
通过这种方式,您可以随意修改 app\models。
每当您更改数据库时,重新生成基础模型。
我正在学习 Yii,我想知道我是否使用 Gii 生成模型和 CRUD 文件,然后我手动修改了这些文件,然后我更改了我的数据库,我应该再次 运行 Gii 吗?它会覆盖我在模型文件中的更改吗?如果是这样,更新我的模型、控制器和视图文件以反映数据库中的更改而不丢失我以前的更改的最佳解决方案是什么?
Gii 的设计目的是在开始时为您提供基本代码,然后您可以根据需要对其进行修改。
是的,如果您再次 运行 它会覆盖您的文件(但您需要明确选中 "Override" 复选框)。
所以推荐的做法是先设计尽可能完整的数据库结构,然后用Gii生成模型/CRUD/。
然后在没有 Gii 的情况下手动完成后续更改。
小提示:如果你再次运行 Gii,你可以在diff中查看变化并手动复制它们。
一旦你获得更多经验,很可能你会意识到没有必要这样做。
您问题的真正解决方案是通过 Gii 生成所有初始模型,并将它们原封不动地保存在单独的目录中,例如 app\models\base
并将这些模型命名为 ModelNameBase
在 app\models 创建您自己的模型,例如 ModelName 让 app\models 扩展基本模型。
通过这种方式,您可以随意修改 app\models。
每当您更改数据库时,重新生成基础模型。