控制器

2024 年 8 月 29 日 | 阅读 2 分钟

在 MVC 结构中,控制器的作用是处理来自用户的请求并生成响应。传入的请求由控制器分析,传递给模型,模型结果被定向到视图,最后生成一个响应。

控制器动作

控制器包含用户调用的动作以执行请求。一个控制器可以有多个请求。

以下代码是一个示例,其中在控制器文件 SiteController.php 中有两个动作 updatecreate

查看上述代码,action update (actionUpdate( )),它将首先根据请求的 id 加载模型,然后尝试使用请求数据包含新的模型实例并保存模型。然后它将被重定向到带有模型 id 的视图动作。否则,它将返回 update 动作。

Action delete (actionDelete( )),它将根据请求的 id 加载模型,然后将其删除。它将被重定向到 index 动作。

路由

在 Yii URL 中,您一定注意到了一个 r。这个 r 是路由。

例如:https:///index.php?r=site/index

上面的例子中的路由是 site/index

它由以下部分组成

moduleID:仅当控制器属于非应用程序模块时适用。

controllerID:一个字符串,用于标识同一模块中的所有控制器中的控制器。在上面的例子中,它是 site

actionID:一个字符串,用于标识控制器中所有动作中的动作名称。在上面的例子中,它是 index

路由格式是

ControllerID/ActionID

如果属于一个模块,它采用以下格式

下一个主题控制器动作