ホームページ >PHPフレームワーク >YII >yii2 のモデルと activeRecord の違いは何ですか
Yii2 のモデルと activeRecord (略して AR) の違いは次のように分析されます:
(関連する推奨事項: yii)
1. モデル
モデルは 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() { // ...... } }
コントローラー コードを見てみましょう:
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 クラス
Active Record (以下、AR) は、次のデータにアクセスするためのオブジェクト指向インターフェイスを提供します。データベース。 activeRecord クラスはデータ テーブルに関連付けられており、各 activeRecord オブジェクトはテーブル内の行に対応し、オブジェクトの属性 (つまり、AR の属性 Attribute) はデータ行の対応する列にマップされます。アクティビティ レコード (AR オブジェクト) はデータ テーブルの行に対応し、AR オブジェクトの属性は行の対応する列をマップします。
3. Model と ActiveRecord クラスの関係
yii\db\ActiveRecord.php
class ActiveRecord extends BaseActiveRecord { ... }
で確認できますyii\db\BaseActiveRecord で確認できます.php から
abstract BaseActiveRecord extends Model implements ActiveRecordInterface { ... }
以上がyii2 のモデルと activeRecord の違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。