2017-01-18 40 views
0

Yii2具有generating CRUD for table with gii的功能。Yii2:将字段添加到自动生成的CRUD(自动?)

它创建了几个文件:控制器,模型,搜索模型和视图。

如果在生成CRUD后我需要添加更多的字段到表中?我知道我需要改变:

  • 型号的
    • PHPDoc的
    • rules()
    • attributeLabels()
  • 搜索模式的
    • rules()
    • search()(调整->andFilterWhere()呼叫)
  • 查看:
    • index(格列)
    • _form(模型输入)
    • _search(搜索输入)
    • view(属性行)

很多工作。有没有办法更容易/自动地做到这一点?我明白,我可以再生CRUD与GII,但在这种情况下,所有我的其他调整将被覆盖(丢失)。

也许还有一些其他的Yii2 CRUD解决方案,它不会硬编码所有字段,并允许表格模式更改自动出现在视图/模型中?很高兴知道这件事。

回答

2

如果你不想手动改写文件或添加的改变,您将拥有以下选项:

GII,点击预览按钮后,就可以看到文件列表。

enter image description here

如果文件中有改变已经在目录差异显示按钮。 在点击差异按钮,就可以看到文件的变化。

enter image description here

从这个模型(窗口)可以修改文件为您的需要或您可以复制/粘贴代码/从临时文件和管理。

+0

谢谢你的回答!这种方法也需要大量的手动工作,特别是在模型中添加了很多方法的时候。目前我正在尝试在单独的文件夹中创建CRUD,并从中扩展我的模型/控制器。但意见不能扩展... – cronfy

+0

看来我的方法仍然需要从diffs复制代码...即使我从生成的模型扩展我的模型,我需要重写规则和关系方法,否则我得到错误(不扩展)来自关系方法的模型。因此,似乎你的方式是唯一的工作。谢谢!但除了你的建议之外,我仍然不使用GII生成的模型,而是使用我自己的模型,扩展生成的模型(以保持IDE中的自动完成)。 – cronfy

+0

工程就像一个魅力 – Wizard

0

简单的方法是将字段添加到表后再生模型和污物。 如果你有污物的修改,您可以在GUI文件产生不保存,并通过复制粘贴移动新列代码。