一个 Yii + vue 项目(6)yii模型、多模块登陆

版权声明:转载请注明出处,谢谢 https://blog.csdn.net/github_38877986/article/details/78165792

简单讲一下模型,之前介绍的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'
        ]);
    }
}

这样就实现不同的模块登陆不同的模型类。

猜你喜欢

转载自blog.csdn.net/github_38877986/article/details/78165792
yii
今日推荐