YII 系列九應用結構中的模型

2021-07-16 05:06:08 字數 2684 閱讀 8341

>模型的特點:

屬性:代表普通的雷屬性或陣列,能被訪問的業務資料

屬性標籤:制定屬性顯示出來的標籤

塊賦值:支援一步給許多屬性賦值

驗證規則則:確保輸入資料符合所宣告的驗證規則

資料匯出:允許模型資料匯出為自定義格式的陣列

>屬性

>>屬性的訪問方式

$model['name']

$model->name

迭代器遍歷模型(輸出了鍵值對)

foreach($model as $name=>$value)

>場景

>>模型可以在多個場景下使用,確保了在不同場景下驗證規則不同。也可以在屬性塊賦值是使用

在例項化過程中,場景作為屬性進行設定

$model = new user;

$model->scenario = 'login';

在例項化過程中,場景作為構造初始化配置的引數進行設定

$model = usre(['scenario'=>'login']);

具體場景的實現過程:

use yii\db\activerecord;

class user extends activerecord

}scenarios()返回陣列,陣列名為場景名,值為或從屬性。

上圖表示,在login場景中,有兩個驗證被啟用,在註冊時,有三個屬性的驗證被啟用

>驗證標籤

// 使用者輸入資料賦值到模型屬性

if ($model->validate()) else

//呼叫validate()函式進行驗證

public function rules()

//呼叫入rules()函式實行相關的驗證規則

>塊賦值

可以使用load函式直接塊賦值$model->load($model_another)

>>在rules驗證規則中,有乙個safe的屬性,表示資料是安全的可以不用被驗證

public function rules()

>>可以定義不安全的驗證方式

public function scenarios()

對secret屬性賦值

$model->secret = $secret;

>資料的匯出

匯出為json格式或者excel格式

第一步,模型轉換為陣列

yii\base\model::toarray()與attributes相同

此方法與下同(呼叫attributers()函式)

100);

$array = $post->attributes;

第二步,陣列轉換為所需要的格式

$array = $model->toarray(, [

'prettyname'

,'fulladdress'

]); 可以返回fields(字段)方法中定義的所有欄位和extrafields()方法定義的prettyname and fulladdress欄位

//一下方法定義了資料表的字段對應的模型屬性名

public function fields()

, ];

}

>yii\base\model

>>使用到的屬性

$attributes array attribute 'name=>value'

$scenario string the scenario tha thsi model is in

$validators all the validatos declarid in the model

屬性相關的方法

activeattributes()

before/aftervalidate()

extrafielda()

fields()

gemerateattributelabel()

get系列函式

getactivevalidators()

getattrbutelabel()

getattibutes

getscenario()

getvalidators()

hasmethod()

hasproperty()

init()

isattributeactive()

isattributerequired()

isattirbutesafe()

load/validata/scnario

load()

loadmutiple()

validate()

balidatemultiple()

toarray()

trigger()

scenarios()

setattributes()

setscnario()

>用法總結

>類的使用進度

yii\base\model

yii中資料模型的使用

模型是 cmodel 或其子類的例項。模型用於保持資料以及與其相關的業務邏輯。模型是單獨的資料物件。它可以是資料表中的一行,或者乙個使用者輸入的表單。yii資料庫操作使用的是pdo,所以使用yii的時候必須保證你的php.ini中pdo是開啟狀態。乙個資料表對應乙個資料模型,所以有多少張表就對應多少...

結構在Loadrunner中的應用

在實際工作中,很多情況我們需要將不同型別的資料組織起來一起應用,比如 學校在期末考試結束後,通常都要進行學生成績的填報和查詢工作。乙個一年級小學生的資訊通常包括 姓名 學號 性別 年齡 語文成績 數學成績等。姓名 性別是乙個字元型別的資料,而年齡 學號為整數型別,語文成績 數學成績通常都為單精度浮點...

經典資料結構系列之 佇列的應用

1 前言 資料結構,是計算機程式設計中對資料儲存最基本的操作,不同的資料結構適用不同的業務場景。如今大部分情況都是呼叫開發api封裝好的類庫,直接呼叫,幾乎不需要程式設計師再去深究其中背後實現的邏輯,大大簡化和減低了對程式設計師的要求。正是這種,知其然而不知其所以然,導致很多程式設計師缺乏對於底層結...