Heim >PHP-Framework >YII >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-KlasseKann in yiidbActiveRecord.php
class ActiveRecord extends BaseActiveRecord { ... }gesehen werdenKann 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!