• 技术文章 >php框架 >YII

    yii2中model和activeRecord有什么区别

    VV2020-11-20 15:57:37转载1345

    Yii2中的model与activeRecord(简称AR)的区别分析如下:

    (相关推荐:yii

    一、Model

    models 是mvc中的一部分,是代表业务数据,规则和逻辑的对象。Model 类也是更多高级模型如Active Record 活动记录的基类
    默认情况下,模型是直接从yii\base\Model继承。

    namespace app\models;
    
    use yii\base\Model;
    
    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 app\controllers;
    use Yii;
    use yii\web\Controller;
    
    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类的关系

    在yii\db\ActiveRecord.php中可以看到

    class ActiveRecord extends BaseActiveRecord
    {
    ...
    }

    在yii\db\BaseActiveRecord.php中可以看到

    abstract BaseActiveRecord extends Model implements ActiveRecordInterface
    {
    ...
    }

    以上就是yii2中model和activeRecord有什么区别的详细内容,更多请关注php中文网其它相关文章!

    本文转载于:csdn,如有侵犯,请联系a@php.cn删除
    专题推荐:yii2 modle activeRecord
    上一篇:Yii框架如何正确使用MemCache缓存 下一篇:为什么我们要选择yii框架
    第14期线上培训班

    相关文章推荐

    • PHP YII框架开发小技巧之模型(models)中rules自定义验证规则,yiirules_PHP教程• Laravel框架学习笔记(二)项目实战之模型(Models),laravelmodels_PHP教程• Lavarel基础实践——model,数据库 models modem model no• python django | models

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网