天天看點

YII模型

通常在一個 MVC 架構中,模型是負責維護狀态,因為,它應該封裝業務規則,定義資料的狀态。在 Yii 中,一個模型可以是 CModel 的一個執行個體或它的子類。通常一個模型類包括資料的屬性,可能還會有不同的标簽(有些是為了顯示給使用者時更友好),并且可以設定一些規則進行驗證。模型中的資料可能來自資料庫的表或一個表單使用者輸入域。

Yii 實作了兩種模型:表單模型(CFormModel 類)和 Active Record 模型(CActiveRecord 類)。他們都繼承自同一個基類 CModel。CFormModel 代表的資料模型是從 HTML 表單中收集的輸入,它封裝了所有邏輯,如表單的驗證和其他業務邏輯,這些是要應用到表單的域上。它能将這些資料存儲在記憶體中,或者在一個 Active Record 的模型幫助下,存入資料庫。

Active Record (AR)是一種設計模式,用面向對象的方式抽象的通路資料。在 Yii 中,每一個 AR 對象的執行個體可以是 CActiveRecord 類或它的子類,它包裝了資料庫表或視圖中的一行記錄,并封裝了所有邏輯和通路資料庫的細節,如果有大部份的業務邏輯,則必須使用這種模型。資料庫表中一行每列字段的值對應 AR 對象的一個屬性。