Yii2中的model與activeRecord(簡稱AR)的區別分析如下:
(相關推薦:yii)
一、Model
models 是mvc中的一部分,是代表業務數據,規則和邏輯的對象。Model 類也是更多高級模型如Active Record 活動記錄的基類
默認情況下,模型是直接從yiibaseModel繼承。
namespace?appmodels; use?yiibaseModel; class?LoginForm?extends?Model { ????public?$username; ????public?$password; ????public?function?rules()?{ ????????//?這里寫你的驗證規則 ????????[['username',?'password'],?'required'], ????????//?password?is?validated?by?validatePassword() ????????['password',?'checkPassword'],?//?驗證密碼 ????} ????//?這里寫你驗證密碼的邏輯 ????public?function?checkPassword($attribute,$params)? ????{ ????????//?...... ????} ????//?這里寫登錄的邏輯 ????public?function?login() ????{ ????????//?...... ????} }
我們看controller代碼:
namespace?appcontrollers; use?Yii; use?yiiwebController; class?SiteController?extends?Controller { ????//?... ????public?function?actionLogin() ????{ ????????$model?=?new?LoginForm(); ????????//?根據用戶在登錄表單的輸入來做判斷 ????????if?($model->load(Yii::$app->request->post())?&&?$model->login())?{ ????????????return?$this->goBack(); ????????} ????} }
二、ActiveRecord類
Active Record (活動記錄,以下簡稱AR)提供了一個面向對象的接口, 用以訪問數據庫中的數據。一個 activeRecord 類關聯一張數據表, 每個 activeRecord 對象對應表中的一行,對象的屬性(即 AR 的特性Attribute)映射到數據行的對應列。 一條活動記錄(AR對象)對應數據表的一行,AR對象的屬性則映射該行的相應列。
三、Model與ActiveRecord類的關系
在yiidbActiveRecord.php中可以看到
class?ActiveRecord?extends?BaseActiveRecord { ... }
在yiidbBaseActiveRecord.php中可以看到
abstract?BaseActiveRecord?extends?Model?implements?ActiveRecordInterface { ... }
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END