我是想通过全局变量的方法获取登录用户的信息,但是没成功,以下是方法,求指点,谢谢:
*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’]的值却是取不出来?
yii 自带登录你不用,下载下来就有示例。
这里是配置,只读