-1

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

  • 假设我已经设计了我的数据库
  • 使用 Yiic shell - 控制台对数据库进行建模并创建 crud 类等。
  • 根据我的自定义要求修改了控制器和视图。

现在客户需求发生了变化,数据库中需要一个额外的字段。

  • 我修改数据库以将例如“tel2”字段添加到客户表中。

我是否需要手动更新模型、视图和控制器以合并这些更改,或者我是否保存自定义项然后让 Yiic shell 重新构建模型、视图和控制器,然后手动重新编写自定义项?

我相信我可以做任何一个,但是有没有更简单的方法/有没有一种方法可以让你们所有人的工作变得更轻松?

4

2 回答 2

5

当我开始使用 Yii 时,这也是我心中的一个问题。

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

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

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

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

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

图像

我认为这应该回答了你的问题。

问候,

于 2013-04-27T15:54:27.510 回答
1

您应该将gii其视为一种可以帮助您快速入门的工具。但是一旦你创建了你的模型和可能的 CRUD,你通常可以忘记它。您的项目代码会不断发展 - 如果它不是一个非常简单的项目 - 无论如何,您将对自动生成的代码进行大量手动更改。

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

于 2013-04-28T09:15:40.910 回答