我在laravel项目中有一个登录表单,并使用ajax在我的控制器方法中发送用户登录数据。用户成功登录后,我将user_name保留在会话$_SESSION['name]
中。但是当我尝试在我的刀片模板视图中显示$_SESSION['name]
时,它会出错
local.ERROR:未定义索引:名称
这是我的登录控制器方法
public function signin(LoginFormValidation $request)
{
$user_password = $request->password;
$data = User::where('email','=',$request->email)->first();
if(Hash::check($user_password, optional($data)->password))
{
$_SESSION['name'] = $data->name;
echo "success";
}
else
{
echo "no";
}
}
这是我的刀片模板视图
<ul class="cd-main-nav__list js-signin-modal-trigger">
<li><a class="cd-main-nav__item cd-main-nav__item--signup" href="#0">{{ $_SESSION['name'] }}</a></li>
</ul>
为什么用户名没有存储在我的会话中,或者存储为什么会出错?
答案 0 :(得分:1)
使用laravel会话助手功能
<强>控制器强>
public function signin(LoginFormValidation $request)
{
$user_password = $request->password;
$data = User::where('email','=',$request->email)->first();
if(Hash::check($user_password, optional($data)->password))
{
session()->put('name', $data->name);
echo "success";
}
else
{
echo "no";
}
}
<强>刀片强>
<ul class="cd-main-nav__list js-signin-modal-trigger">
<li><a class="cd-main-nav__item cd-main-nav__item--signup" href="#0">{{ session()->get('name') }}</a></li>
</ul>
答案 1 :(得分:0)
你忘了开始会议。
session_start();
推荐的PHP版本&gt; = 5.4.0
if (session_status() == PHP_SESSION_NONE) {
session_start();
}