Laravel:会话没有保存

时间:2015-02-03 07:54:45

标签: php session laravel

所以我已经阅读了所有Laravel会话信息以及有关Laravel会话的所有stackoverflow问题,但它没有任何帮助。

我正在尝试在登录时存储用户名,我希望它能显示我登录页面的整个时间。现在当我登录时,我进入主页面并显示用户名,然后我返回登录,将我重定向到主页面,用户名不再存在。我正在使用的代码:

Session::put('username', Input::get('username'));
$value = Session::get('username');
return View::make('main')->with('username',$value);

然后在我的main.blade.php中:

@if(!empty($username))
     {{$username}}
@endif

我不知道我做错了什么。我这样做完全像所有的例子。 我在这里做错了什么?

1 个答案:

答案 0 :(得分:2)

如果您尚未执行此操作,则应使用Laravels Auth。然后你不必自己处理这些东西,可以这样做来检索用户名:

Auth::user()->username;

修改

这里的实际问题不在于您的会话,而是您只将$username传递给您的一个控制器中的视图,而不是在您渲染它时的所有时间。

如果您想要当前用户的某些属性,请务必使用Auth::user()->username。如果您有其他会话值,则可以使用以下命令直接在视图中访问它们:

{{ Session::get('foo'); }}

另一种方法是观看作曲家。它们允许您在每次渲染时将某些内容传递给视图:

View::composer('main', function($view){
    $view->with('foo', Session::get('foo'));
});

您可以将此代码放入app / filters.php或创建一个新的app / composers.php,并将其包含在app / start / global.php的末尾,其中包含:

require app_path().'/composers.php';

现在,main.blade.php中的变量始终可用:

{{ $username }}