[英]How do I make a logged in user object available to all views in Laravel 5.3
我希望能够在我的视图中获得登录用户的详细信息。 例如{{ $user->email }}
。
这是我的Controller.php
:
public $view_data = array();
public function __construct()
{
$this->middleware('auth');
$this->view_data['user'] = Auth::user();
}
我认为$user
返回NULL
。 我想念什么吗?
默认情况下,它已经可以通过以下方式在所有视图中使用:
Auth::user()
auth()->user()
您可以通过以下方法在视图中直接访问loginIn用户:
{!! Auth::user()->name !!}
{!! auth()->user()->name !!}
{!! access()->user()->name !!}
{{\\ Auth :: user()}} {{\\ Auth :: user()['电子邮件']}}
登录后,Laravel已经提供了此服务。只需编写:
{{ Auth::user()->email }}
{{ auth()->user()->email }}
您还可以将ServiceProvider用于所有视图:
创建服务提供者: php artisan make:provider UserServiceProvider
去
应用程序\\供应商\\ UserServiceProvider.php
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\View;
use Auth;
class UserServiceProvider extends ServiceProvider
{
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
if(Auth::check()){
$user= Auth::user();
View::share('user', $user);
}
}
/**
* Register the application services.
*
* @return void
*/
public function register()
{
}
}
比在config\\app.php
注册此服务提供商
App\Providers\UserServiceProvider::class,
现在,用户对象可用于所有视图,只需编写即可:
{{ $user->email }}
{{ $user->username }}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.