Yii2 中如何获取或者是保存巳经登录的用户信息?

我是想通过全局变量的方法获取登录用户的信息,但是没成功,以下是方法,求指点,谢谢:

*params.php*

return [
    'title' => '微信图书商城',
    'user_info' => '',
    'domain' => [
        'www' => '',
        'm' => '/m',
        'web' => '/web'
    ],
    'upload' => [
        'avatar' => '/uploads/avatar',
        'brand' => '/uploads/brand',
        'book' => '/uploads/book',
    ]
]

在User的方法中,登录时将当前用户的登录信息赋值给 params["user_info"],然后在编辑用户基本信息时,再从 params["user_info"] 中取出当前登录用户的信息,但是取不出来了,一直报:string '' (length=0)

*UserController.php*

<?php
namespace app\modules\web\controllers;

use app\models\User;
use yii\base\Controller;

class UserController extends Controller{
    //login
    public function actionLogin(){
        if( \Yii::$app->request->isGet ){
            $this->layout = "login_index";
            return $this->render("login");
        }

        $login_name = trim( $this->post("login_name","" ));
        $login_pwd = trim( $this->post("login_pwd",""));

        $user_info = User::find()->where([ 'login_name' => $login_name ])->one();
        \Yii::$app->params['user_info'] = $user_info;//这里是正常的可以打印出当前登录用户的信息
    }
    
    //edit
    public function actionEdit(){
        //获取登录用户信息
        $user = \Yii::$app->params['user_info']; //这里就取不出来了,冒似显示的是params['user_info'] 中定义的空的字符串
        var_dump($user);
        if( \Yii::$app->request->isGet){
            //将当前用户信息传递到当前页面
            return $this->render("edit",[
                'info' => $user
            ]);
        }
    }
}

这是怎么回事呢?为什么保存进params[‘user_info’]的值却是取不出来?

阅读 2.9k
2 个回答

yii 自带登录你不用,下载下来就有示例。

这里是配置,只读

Yii::$app->params是`config/params.php`这个文件定义的,不是你自己操控的。

去看看User组件的用法

https://www.yiichina.com/doc/guide/2.0/security-authentication
推荐问题