2017-06-07 31 views
0

我是MVC和Yii Framework的新手。 $模型變量對我來說似乎非常混亂。

它在第一個地方聲明在哪裏?它從何而來?

當我使用GridView時,我發現有些函數將$ model作爲參數。此GridView的模型和模型搜索都不會在任何地方聲明$ model變量。但它被廣泛用於各種數據管理。這對我來說沒有意義。

所以我需要一個簡單,直接的,對於Yii Framework v2中的$ model變量的「傻瓜式」解釋。幫助澄清這些問題非常感謝: 1.什麼是$模型變量的起源? 2.如何識別應用程序的哪個模型是代表在視圖文件中使用它的$ model變量? 3.單個視圖文件中有時會有多個$模型變量。他們都代表一個模型班嗎?用於多個類時如何區分它們?

謝謝。

回答

2

看看如果你不確定其中$model,$searchModel和其他變量來自,你很可能在視圖文件上搜索他們w在這裏他們被使用。

它們在呈現所述視圖的控制器上創建,就像任何其他對象/變量一樣。

從控制器,可以渲染視圖和傳遞對象/變量的方式如下:

// 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, 
    ]); 
} 
1

的$模式是一種變種的人...通常在yii2樣品中含有的模型類的實例(如tiplically的活動記錄=)

假設你有一個類

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

一個tipical代碼可能是

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

那些類別:: findOne($ ID)發現使用$ id作爲主鍵實例形式的數據庫,並將結果分配給$模型..

那麼你就可以訪問實例屬性:使用

$model->attribute1 

(如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