【问题标题】:Using Gii afer updating model files使用 Gii afer 更新模型文件
【发布时间】:2018-12-16 14:31:45
【问题描述】:

我正在学习 Yii,我想知道我是否使用 Gii 生成模型和 CRUD 文件,然后我手动修改了这些文件,然后我更改了我的数据库,是否应该再次运行 Gii?它会覆盖我在模型文件中的更改吗?如果是这样,在不丢失我以前的更改的情况下更新我的模型、控制器和视图文件以反映数据库中的更改的最佳解决方案是什么?

【问题讨论】:

    标签: yii yii2 gii


    【解决方案1】:

    Gii 的设计初衷是为您提供基本代码,然后您可以根据需要对其进行修改。

    是的,如果您再次运行它,它将覆盖您的文件(但您需要明确选中“覆盖”复选框)。

    所以推荐的做法是先尽可能完整地设计数据库结构,然后用 Gii 生成模型/CRUD/。

    然后在没有 Gii 的情况下手动完成后续更改。

    一个小提示:如果你再次运行 Gii,你可以在 diff 中查看变化并手动复制它们。

    一旦你获得更多经验,你很可能会意识到没有必要这样做。

    【讨论】:

      【解决方案2】:

      您问题的真正解决方案是由 Gii 生成所有初始模型,并将它们原封不动地保存在单独的目录中,例如 app\models\base

      并将这些模型命名为 ModelNameBase

      在 app\models 中创建您自己的模型,例如 ModelName 让 app\models 扩展基本模型。

      这样您就可以随意修改 app\models。

      每当您有数据库更改时,重新生成基本模型。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-02-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多