错误:未定义的索引:Laravel刀片模板中的名称

时间:2018-04-21 09:59:44

标签: php ajax laravel laravel-blade

我在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>

为什么用户名没有存储在我的会话中,或者存储为什么会出错?

2 个答案:

答案 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();
 }