1. 程式人生 > >一個 Yii + vue 專案(6)yii模型、多模組登陸

一個 Yii + vue 專案(6)yii模型、多模組登陸

簡單講一下模型,之前介紹的AR類全稱是(ActiveRecord 在yii\db\ActiveRecord)用中文描述是活動記錄,是一種特殊的模型,模型呢,是 mvc 裡的 m,yii的模型(yii\base\Model)內建了一些常用的處理,像場景,驗證,載入資料,輸出處理。。。這裡就不多講了。
再說一下 user 元件,看一下原始碼會發現它要求定義一個 User::identityClass 且該類要符合 IdentityInterface 介面,而且在例項化user元件的時候就會檢查這個 identityClass(它寫在建構函式裡了),至於儲存 session 的名是由 user->idParam 決定的,所以簡單點多模組登陸就只要配置在 web.php 裡然後在模組入口修改對應的 user->idParam 就好了。
home/module.php

namespace home;
use Yii;
class module extends \yii\base\Module
{
    public function init(){
        parent::init();
        Yii::$app->user->idParam = '_home';
    }
}

這裡有個問題,假如我兩個模組 login 的不是同一個模型,那麼這種方法就不可取了,這個時候就需要將 user 元件的配置放在模組入口中如:

namespace home;
use Yii;
class module extends \yii
\base\Module {
public function init(){ parent::init(); Yii::$app->set('user', [ 'class' => 'yii\web\User', 'identityClass' => "home\models\User", 'idParam' => '_home' ]); } }

這樣就實現不同的模組登陸不同的模型類。