Yii 修改现有crud脚手架模型、视图和;控制器

Yii 修改现有crud脚手架模型、视图和;控制器,yii,workflow,Yii,Workflow,我正在学习Yii框架。我以前一直在wordpress中构建插件,以前从未使用过PHP MVC框架 假设我设计了我的数据库 使用yicshell-console对数据库进行建模并创建crud类等 根据我的自定义要求修改控制器和视图 现在,客户机需求发生了变化,数据库中需要一个额外的字段 我修改了数据库,将例如“tel2”字段添加到customer表中 我是否需要手动更新模型、视图和控制器以合并这些更改,或者我是否保存自定义设置,然后让YIC shell重新构建模型、视图和控制器,然后手动重

我正在学习Yii框架。我以前一直在wordpress中构建插件,以前从未使用过PHP MVC框架

  • 假设我设计了我的数据库
  • 使用yicshell-console对数据库进行建模并创建crud类等
  • 根据我的自定义要求修改控制器和视图
现在,客户机需求发生了变化,数据库中需要一个额外的字段

  • 我修改了数据库,将例如“tel2”字段添加到customer表中
我是否需要手动更新模型、视图和控制器以合并这些更改,或者我是否保存自定义设置,然后让YIC shell重新构建模型、视图和控制器,然后手动重新编写自定义设置


我相信我也能做到,但有没有一种更简单的方法/你们所有人有没有一种方法可以让你们的生活更轻松?

当我开始学习时,这也是我脑海中的一个问题

答案很简单,你不必改变一切。Gii模块是Yii的一个非常强大的功能,在DB表之后制作CRUD和模型,如果您有自己的自定义函数和方法,然后您决定需要更改表并向其中添加新列,您只需在gii中重新制作模型,它将在标记为“diff”的单独链接中显示修改后的代码

Gii只生成代码,不会覆盖它

现在,您需要做的就是打开“diff”,确保不会覆盖代码,因为还会有一个覆盖按钮。在您签出“diff”代码后,它将显示新列和突出显示的新属性,现在您需要做的就是将必要的更改代码复制到原始代码中

这样,您可以在所有内容保持不变的情况下进行任意多的更改

还有另一种方法。您可以使用基类并将所有代码扩展到另一个文件中。这样,您所需要做的就是更改基础模型,所有内容都保持不变

我想这应该回答了你的问题


关于,

您应该将
gii
作为一种快速入门的工具。但是一旦你创建了你的模型,也许是积垢,你通常可以忘记它。您的项目代码会不断发展,如果它不是一个非常简单的项目,那么您将对自动生成的代码进行大量手动更改


因此,每次触摸数据库时,都会更新相关文件。通常,这只需要在模型的
rules()
中添加新的属性规则,并在表单视图中添加另一个输入字段。

手动更新现有代码。重建脚手架和您的定制将花费更长的时间。看起来非常有希望。我将有一场戏。。。非常感谢。假设这是可行的。如果答案是肯定的,我会投票给你。再次感谢。确实如此,我使用这种方法:)但我很高兴能帮上忙!我想如果这个方法对你有帮助的话,你可以把它作为答案吗?