yii2中model和activeRecord有什么區別

yii2中model和activeRecord有什么區別

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
喜歡就支持一下吧
點贊10 分享