yii2控制器
Yii2 的控制器(Controller)是 MVC(Model-View-Controller)设计模式中的核心组件之一,负责处理用户请求并生成相应的响应。控制器包含了处理请求所需的方法(通常称为动作方法或动作),并可以调用模型和视图来执行相应的业务逻辑和展示内容。
在 Yii2 中,控制器类通常继承自 yii\web\Controller 类,并定义在应用程序的 controllers 目录下。每个控制器类都对应一个或多个路由,用于匹配特定的 URL 请求。
Yii2 控制器示例
<?php
namespace app\controllers;
use Yii;
use yii\web\Controller;
use app\models\MyModel;
class MyController extends Controller
{
// 声明公共动作
public function actionIndex()
{
// 获取模型数据
$model = new MyModel();
$data = $model->getData();
// 渲染视图并传递数据
return $this->render('index', [
'data' => $data,
]);
}
// 声明另一个公共动作
public function actionView($id)
{
// 根据ID获取模型数据
$model = MyModel::findOne($id);
if ($model === null) {
throw new \yii\web\NotFoundHttpException('The requested page does not exist.');
}
// 渲染视图并传递数据
return $this->render('view', [
'model' => $model,
]);
}
// ... 其他动作方法
}
在这个例子中,MyController 继承自 yii\web\Controller,并定义了两个公共动作方法:actionIndex 和 actionView。这些动作方法分别对应到路由 /my/index 和 /my/view/(假设控制器 ID 为 my)。
动作方法的命名遵循一定的约定:它们必须以 action 开头,后面跟着动作的名称。当 Yii2 接收到一个请求时,它会根据请求的 URL 来确定应该调用哪个控制器的哪个动作方法。
在动作方法中,你可以执行各种逻辑操作,如获取模型数据、处理表单提交等。一旦逻辑处理完成,你可以使用 $this->render() 方法来渲染一个视图,并将所需的数据传递给视图。
注意,在 Yii2 中,你可以通过路由规则来映射 URL 到控制器动作。这些规则通常定义在应用程序的配置文件中,或者通过 Yii2 的路由组件动态地添加。
控制器还可以包含其他方法,如过滤器方法(用于在动作执行前后执行某些操作)和私有辅助方法(用于封装公共逻辑)。然而,只有以 action 开头的方法才会被识别为动作方法,并可以由 URL 直接访问。
标签:控制器,Yii2,动作,URL,视图,yii2,方法 From: https://www.cnblogs.com/hu308830232/p/18105240