我正在学习Yii框架。我以前总是在wordpress中构建插件,之前从未使用过PHP MVC框架。
现在客户端需求发生变化,数据库中需要一个额外的字段。
我是否需要手动更新模型,视图和控制器以合并这些更改,或者我是否保存自定义,然后让Yiic shell重新构建模型,查看&控制器,然后手动重新编写自定义?
我相信我也可以做到,但是有一种更简单的方式/你是否有一种方式可以使你的生活更轻松?
答案 0 :(得分:5)
当我开始Yii时,这也是我的一个问题。
简单的答案是你不必改变一切。 Gii模块是Yii的一个非常强大的功能,在使用DB表之后制作CRUD和模型之后,如果您有自己的自定义函数和方法,那么您决定需要更改表并添加新列它,您需要在gii中重新制作模型,它应在单独的链接中显示修改后的代码,标记为“ diff ”。
Gii只生成代码,但不会覆盖它。
现在你需要做的就是打开“diff”,确保你不会覆盖代码,因为也会有覆盖按钮。签出“diff”代码后,它将显示新列和突出显示的新属性,现在您需要做的就是将必要的已更改代码复制到原始代码中。
这样,您可以根据需要进行任意数量的更改,而所有内容都保持不变。
还有另一种方法。您可以使用基类并将所有代码扩展到另一个文件中。这样,您需要做的就是更改基本模型,所有内容仍然保持不变。
我认为这应该回答了你的问题。
此致
答案 1 :(得分:1)
您应该将gii
视为一种可以让您快速入门的工具。但是一旦你创建了你的模型,也许你的CRUD,你通常可以忘记它。您的项目代码不断发展 - 如果它不是一个非常简单的项目 - 您无论如何都会对自动生成的代码进行大量的手动更改。
因此,每次触摸数据库时,都会更新相关文件。通常,这只涉及在模型中的rules()
中添加新的属性规则,并在表单视图中添加另一个输入字段。