所以我已经阅读了所有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
我不知道我做错了什么。我这样做完全像所有的例子。 我在这里做错了什么?
答案 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 }}