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!