【问题标题】:What is $model in Yii2?Yii2 中的 $model 是什么?
【发布时间】:2017-06-07 17:54:07
【问题描述】:

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

它是在哪里声明的?它来自哪里?

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

所以我需要对 Yii Framework v2 中的 $model 变量进行简单、直截了当的“傻瓜式”解释。非常感谢您帮助澄清这些问题: 1. $model 变量的来源是什么? 2. 在视图文件中使用 $model 变量时如何识别应用的模型是什么? 3. 有时单个视图文件中有多个 $model 变量。它们都代表一个模型类吗?多类使用时如何区分?

谢谢。

【问题讨论】:

    标签: model-view-controller model yii2


    【解决方案1】:

    如果您不确定$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,
        ]);
    }
    

    【讨论】:

      【解决方案2】:

      $model 和其他的一样是一个 var ...通常在 yii2 样本中包含一个模型类的实例(通常是一个活动记录=)

      假设你有一堂课

       class Category extends \yii\db\ActiveRecord
       {
        ........
      

      一个典型的代码可能是

       $model = Category::findOne($id);
      

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

      然后您可以使用

      访问实例属性(例如:attribute1)
      $model->attribute1
      

      你可以看看这个指南

      http://www.yiiframework.com/doc-2.0/guide-index.html http://www.yiiframework.com/doc-2.0/guide-structure-models.html http://www.yiiframework.com/doc-2.0/guide-db-active-record.html

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-19
        • 2019-01-02
        • 1970-01-01
        • 1970-01-01
        • 2017-03-07
        • 1970-01-01
        相关资源
        最近更新 更多