Kiw*_*iwi 8 php laravel laravel-5
我正在尝试做一个view::share('current_user', Auth::User());但是在laravel 5我找不到在哪里做这个,在L4你可以在baseController中做到这一点,但那个不再存在了.
格特格伦
xwl*_*lee 14
我正在使用Laravel 5.0.28,view::share('current_user', Auth::User())因为这个问题不再工作了https://github.com/laravel/framework/issues/6130
我所做的是,首先使用工匠创建一个新的服务提供商.
php artisan make:provider ComposerServiceProvider
Run Code Online (Sandbox Code Playgroud)
然后将ComposerServiceProvider添加到config/app.phpproviders数组
//...
'providers' => [
//...
'App\Providers\ComposerServiceProvider',
]
//...
Run Code Online (Sandbox Code Playgroud)
然后打开app/Providers/ComposerServiceProvider.php刚刚创建的内部引导方法添加以下内容
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
View::composer('*', function($view)
{
$view->with('current_user', Auth::user());
});
}
Run Code Online (Sandbox Code Playgroud)
最后,导入View和Auth外观
use Auth, View;
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅http://laravel.com/docs/5.0/views#view-composers
Mar*_*łek 11
首先,您可以创建自己的BaseController并将其扩展到其他控制器中.
第二件事是,您可以Auth:user()直接在View中使用,您不需要在视图中指定任何内容.
对于其他用途,你可以去app/Providers/App/ServiceProvider.php和boot方法,你可以View::share('current_user', Auth::User());,但还是当然,你需要添加第一导入命名空间:
use View;
use Auth;
Run Code Online (Sandbox Code Playgroud)
因为此文件位于App\Providers命名空间中
在 Laravel 5 中使用与 Laravel 4 中相同的方法:
View::share('current_user', Auth::User());
Run Code Online (Sandbox Code Playgroud)
或使用视图助手:
view()->share('current_user', Auth::User());
Run Code Online (Sandbox Code Playgroud)
请参阅http://laravel.com/docs/5.0/views