Model view controller Yii2中的$model是什么?

Model view controller Yii2中的$model是什么?,model-view-controller,model,yii2,Model View Controller,Model,Yii2,我是MVC和Yii框架的新手。$model变量对我来说似乎非常混乱 首先在哪里申报?它来自哪里 当我使用GridView时,我看到一些函数使用$model作为参数。此GridView的模型或模型搜索都不会在任何位置声明$model变量。然而,它被广泛应用于各种数据管理中。这对我来说毫无意义 所以我需要一个简单的,直接的,关于Yii框架v2中$model变量的“傻瓜”解释。非常感谢您帮助澄清这些问题: 1.$model变量的来源是什么? 2.当$model变量在视图文件中使用时,如何确定它代表的是

我是MVC和Yii框架的新手。$model变量对我来说似乎非常混乱

首先在哪里申报?它来自哪里

当我使用GridView时,我看到一些函数使用$model作为参数。此GridView的模型或模型搜索都不会在任何位置声明$model变量。然而,它被广泛应用于各种数据管理中。这对我来说毫无意义

所以我需要一个简单的,直接的,关于Yii框架v2中$model变量的“傻瓜”解释。非常感谢您帮助澄清这些问题: 1.$model变量的来源是什么? 2.当$model变量在视图文件中使用时,如何确定它代表的是应用程序的哪个模型? 3.有时,单个视图文件中有多个$model变量。它们是否都代表一个模型类?当用于多个类时,如何区分它们


谢谢。

与其他模型一样,$model是一个var…通常在yii2示例中包含一个模型类的实例(实际上是一个活动记录=)

假设你有课

 class Category extends \yii\db\ActiveRecord
 {
  ........
一个典型的代码可能是

 $model = Category::findOne($id);
其中Category::findOne($id)使用$id作为主键查找实例表单数据库,并将结果分配给$model

然后可以使用访问实例属性(例如:attribute1)

你可以看看这本指南


美元模型与其他模型一样是一个变量……通常在yii2示例中包含一个模型类的实例(实际上是一个活动记录=)

假设你有课

 class Category extends \yii\db\ActiveRecord
 {
  ........
一个典型的代码可能是

 $model = Category::findOne($id);
其中Category::findOne($id)使用$id作为主键查找实例表单数据库,并将结果分配给$model

然后可以使用访问实例属性(例如:attribute1)

你可以看看这本指南


如果您不确定
$model
$searchModel
和其他变量的来源,您很可能在使用它们的视图文件中搜索它们

它们是在呈现所述视图的控制器上创建的,就像任何其他对象/变量一样

从控制器,可以按以下方式渲染视图和传递对象/变量:

// MyController.php
...
public function actionMyAction($id) {
    // Create and manipulate $model and $searchModel
    ...
    /*
     * First param is the name of the view to be rendered
     * Second param is an Associative Array with params
     * that will be made available to the view.
     */
    return $this->render('my-view-name', [
        'model' => $model,
        'searchModel' => $searchModel,
    ]);
}

如果不确定
$model
$searchModel
和其他变量来自何处,则很可能是在使用它们的视图文件中搜索它们

它们是在呈现所述视图的控制器上创建的,就像任何其他对象/变量一样

从控制器,可以按以下方式渲染视图和传递对象/变量:

// MyController.php
...
public function actionMyAction($id) {
    // Create and manipulate $model and $searchModel
    ...
    /*
     * First param is the name of the view to be rendered
     * Second param is an Associative Array with params
     * that will be made available to the view.
     */
    return $this->render('my-view-name', [
        'model' => $model,
        'searchModel' => $searchModel,
    ]);
}