首页 php框架 YII yii2中model和activeRecord有什么区别

yii2中model和activeRecord有什么区别

Nov 20, 2020 pm 03:57 PM
activerecord yii2

yii2中model和activeRecord有什么区别

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中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

在云本地环境中使用YII的最佳实践是什么? 在云本地环境中使用YII的最佳实践是什么? Mar 18, 2025 pm 04:39 PM

本文讨论了在云本地环境中部署YII应用程序的最佳实践,并通过集装,编排和安全措施专注于可扩展性,可靠性和效率。

在无服务器体系结构中使用YII的关键注意事项是什么? 在无服务器体系结构中使用YII的关键注意事项是什么? Mar 18, 2025 pm 04:33 PM

本文讨论了在无服务器体系结构中使用YII的关键注意事项,专注于无状态,冷启动,功能大小,数据库交互,安全性和监视。它还涵盖优化策略和潜在的综合

如何实现与YII和Websocket的实时数据同步? 如何实现与YII和Websocket的实时数据同步? Mar 18, 2025 pm 04:34 PM

本文讨论了使用YII和Websocket实施实时数据同步,涵盖了设置,集成以及绩效和安全性的最佳实践。

用编码对测试YII应用程序的最佳策略是什么? 用编码对测试YII应用程序的最佳策略是什么? Mar 18, 2025 pm 04:27 PM

本文讨论了使用编码感应测试YII应用程序的策略,重点是使用内置模块,BDD,不同的测试类型,模拟,CI集成和代码覆盖范围。

YII内置测试框架的主要功能是什么? YII内置测试框架的主要功能是什么? Mar 18, 2025 pm 04:41 PM

YII的内置测试框架可以通过Phpunit集成,灯具管理以及对各种测试类型的支持,改善代码质量和开发实践等功能,从而增强了应用测试。

监视和分析YII应用程序性能的最佳工具是什么? 监视和分析YII应用程序性能的最佳工具是什么? Mar 17, 2025 pm 01:52 PM

本文讨论了用于监视和分析YII应用程序性能的工具,包括YII调试工具栏,Blackfire,New Relic,Xdebug和APM解决方案(如Datadog和Dynatrace)。

在生产中部署YII应用程序的主要考虑因素是什么? 在生产中部署YII应用程序的主要考虑因素是什么? Mar 17, 2025 pm 01:58 PM

本文讨论了在生产中部署YII应用程序的关键注意事项,重点是环境设置,配置管理,绩效优化,安全性,日志记录,监视,部署策略和备份/恢复计划。

使用YII构建SaaS应用程序的主要好处是什么? 使用YII构建SaaS应用程序的主要好处是什么? Mar 18, 2025 pm 04:25 PM

本文讨论了YII对SaaS开发的好处,专注于绩效,安全性和快速开发功能,以提高可扩展性并缩短市场时间。

See all articles