我使用TokenMismatchException
作为我所有观看的模板文件。我想将用户发送到其经过身份验证的用户个人资料(位于我菜单右上角的下拉列表中),如下所示:
layouts.app
不幸的是<ul class="dropdown-menu" role="menu">
<li>
<a href="{{ url('/users/' . $users->id) }}">@lang('user.profile')</a>
</li>
</ul>
未定义。如何在没有控制器的情况下定义$users
?
解决方案:
$users
答案 0 :(得分:1)
您始终可以在刀片视图中访问Auth外观。
{{ url('/users/' . Auth::user()->id) }}
但是,您应确保用户实际登录。
@if(Auth::user())
... stuff you want to show ...
@endif
除了Facades,您可以将任何想要的内容传递给您的视图/模板。通常在控制器中执行此操作。作为一个附加的快速概述:
例如:
// respond directly within route definition
Route::get('/', function() {
return view('home');
});
您可以在此处添加多个选项。
return view('home')->with(['user' => Auth::user()]);
或
$user = Auth::user();
return view('home', compact('user'));
或
return view('home', ['user' => Auth::user()]);
这三种方法都允许您从视图中访问$ user。但是,如果用户未登录,请不要忘记Auth :: user()可能为null。因此,请始终在外部if子句中检查它。