tangniyuqi

tangniyuqi

呵呵

  • 财富值370
  • 威望值0
  • 总积分550

个人信息

  • 发布了话题
    yii2 路由和真实目录一样怎么处理呢
  • 2018-04-25 已签到
    连续签到2天,获得了10个金钱
  • 2018-04-24 已签到
    连续签到1天,获得了5个金钱
  • 2018-03-12 已签到
    连续签到1天,获得了5个金钱
  • 2018-02-28 已签到
    连续签到1天,获得了5个金钱
  • 2017-12-22 已签到
    连续签到1天,获得了5个金钱
  • 我是在配置文件main.php的user组件添加登录事件行为:

    'user' => [
        'identityClass' => 'frontend\models\User',
        'identityCookie' => ['name' => '_identityfrontend', 'httpOnly' => true],
        'enableAutoLogin' => true,
        'loginUrl' => ['user/auth/signin'],
        'idParam' => '_frontend',
        'on beforeLogin' => function($event) {
    
        },
        'as afterLogin' => 'frontend\behaviors\AfterLoginBehavior',
    ],
    

    AfterLoginBehavior.php 里面是这样的:

    namespace frontend\behaviors;
    
    use Yii;
    use yii\web\User;
    use frontend\models\LoginLog;
    
    class AfterLoginBehavior extends \yii\base\Behavior
    {
        /**
         * @inheritdoc
         */
        public $attribute = 'logged_at';
    
        public $coin = 10;
    
        /**
         * @inheritdoc
         */
        public function events()
        {
            return [
                User::EVENT_AFTER_LOGIN => 'afterLogin',
            ];
        }
    
        /**
         * @inheritdoc
         */
        public function afterLogin($event)
        {
            //if ($model = $event->identity->userInfo) {
            if ($model = $event->identity) {
                $model->login_count += 1;
                $model->prev_login_time = $model->last_login_time;
                $model->prev_login_ip = $model->last_login_ip;
                $model->last_login_time = time();
                $model->last_login_ip = Yii::$app->request->userIP;
    
               /* if (!Yii::$app->session->isActive) {
                    Yii::$app->session->open();
                }
    
                $model->session_id = Yii::$app->session->id;
                Yii::$app->session->close();*/
    
                if ($model->save()) {
                    $_model = new LoginLog();
    
                    //每天登录赠送1次金币/积分
                    $today = date('Ymd');
                    $prevDay = date('Ymd', $model->prev_login_time);
    
                    if ($today > $prevDay) {
                        $_model->coin = $this->coin;
                    }
    
                    $_model->save(false);
    
                    return true;
                }
            }
    
            return false;
        }
    }
    
  • 回复了 的回答

    先给$isGuest一个定义试试,public $isGuest;

    Yii::$app->user->isGuest 这个不是user组件自带的属性吗 怎么还需要定义呢

  • 没有大神知道原因吗

主管 等级规则
550/1000
资料完整度
50/100
用户活跃度
0/100

Ta的关注

5

Ta的粉丝

4

Ta的访客

21