Heim  >  Artikel  >  PHP-Framework  >  Was ist der Unterschied zwischen model und activeRecord in yii2?

Was ist der Unterschied zwischen model und activeRecord in yii2?

王林
王林nach vorne
2020-11-20 15:57:3710747Durchsuche

Was ist der Unterschied zwischen model und activeRecord in yii2?

Der Unterschied zwischen Model und ActiveRecord (AR) in Yii2 wird wie folgt analysiert:

(Verwandte Empfehlungen: yii)

1. Model

models ist ein Teil von MVC und repräsentiert Geschäftsdaten, Regeln und logisches Objekt. Die Model-Klasse ist auch die Basisklasse für erweiterte Modelle wie Active Record. Standardmäßig erbt das Modell direkt von 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()
    {
        // ......
    }
}

Schauen wir uns den Controller-Code an:

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. ActiveRecord-Klasse

Active Record (im Folgenden als AR bezeichnet) bietet eine objektorientierte Schnittstelle für den Zugriff auf Daten in der Datenbank. Eine ActiveRecord-Klasse ist einer Datentabelle zugeordnet, und die Attribute des Objekts (d. h. das Attributattribut von AR) werden den entsprechenden Spalten der Datenzeile zugeordnet. Ein Aktivitätsdatensatz (AR-Objekt) entspricht einer Zeile der Datentabelle, und die Attribute des AR-Objekts bilden die entsprechenden Spalten der Zeile ab.

3. Die Beziehung zwischen Model und ActiveRecord-Klasse

Kann in yiidbActiveRecord.php

class ActiveRecord extends BaseActiveRecord
{
...
}
gesehen werden

Kann in yiidbBaseActiveRecord.php

abstract BaseActiveRecord extends Model implements ActiveRecordInterface
{
...
}
gesehen werden

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen model und activeRecord in yii2?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen