Maison  >  Article  >  cadre php  >  Quelle est la différence entre le modèle et activeRecord dans yii2

Quelle est la différence entre le modèle et activeRecord dans yii2

王林
王林avant
2020-11-20 15:57:3710859parcourir

Quelle est la différence entre le modèle et activeRecord dans yii2

La différence entre le modèle et activeRecord (AR en abrégé) dans Yii2 est analysée comme suit :

(Recommandations associées : yii)

1. Modèle

les modèles font partie de mvc et sont des objets qui représentent les données métier, les règles et la logique. La classe Model est également la classe de base pour des modèles plus avancés tels que Active Record
Par défaut, le modèle hérite directement de yiibaseModel.

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()
    {
        // ......
    }
}

Regardons le code du contrôleur :

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();
        }
    }
}

2. Classe ActiveRecord

Active Record (ci-après dénommé AR) fournit une interface orientée objet pour accéder aux données dans la base de données. Une classe activeRecord est associée à une table de données. Chaque objet activeRecord correspond à une ligne de la table et les attributs de l'objet (c'est-à-dire l'attribut d'AR) sont mappés aux colonnes correspondantes de la ligne de données. Un enregistrement d'activité (objet AR) correspond à une ligne du tableau de données, et les attributs de l'objet AR mappent les colonnes correspondantes de la ligne.

3. La relation entre le modèle et la classe ActiveRecord

Vous pouvez le voir dans yiidbActiveRecord.php

class ActiveRecord extends BaseActiveRecord
{
...
}

Vous pouvez le voir dans yiidbBaseActiveRecord.php

abstract BaseActiveRecord extends Model implements ActiveRecordInterface
{
...
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer