Intereting Posts

Laravel 5, View :: Поделиться

Я пытаюсь сделать view::share('current_user', Auth::User()); но в laravel 5 я не могу найти, где это сделать, в L4 вы можете сделать это в baseController, но этого больше не существует.

grt Glenn

Во-первых, вы можете создать свой собственный BaseController и расширить его в других контроллерах.

Во-вторых, вы можете использовать Auth:user() непосредственно в представлении, вам не нужно назначать что-либо в представлении.

Для других применений вы можете перейти к app/Providers/App/ServiceProvider.php а в методе boot вы можете View::share('current_user', Auth::User()); но, конечно, вам нужно сначала импортировать пространства имен:

 use View; use Auth; 

потому что этот файл находится в пространстве имен App\Providers

Я использую Laravel 5.0.28, view::share('current_user', Auth::User()) больше не работает, потому что эта проблема https://github.com/laravel/framework/issues/6130

Вместо этого я создаю нового поставщика услуг с помощью мастера.

 php artisan make:provider ComposerServiceProvider 

Затем добавьте ComposerServiceProvider в config/app.php

 //... 'providers' => [ //... 'App\Providers\ComposerServiceProvider', ] //... 

Затем откройте app/Providers/ComposerServiceProvider.php которые только что создали, внутри метода загрузки добавьте следующее

 /** * Bootstrap the application services. * * @return void */ public function boot() { View::composer('*', function($view) { $view->with('current_user', Auth::user()); }); } 

Наконец, импорт View и Auth facade

 use Auth, View; 

Для получения дополнительной информации см. http://laravel.com/docs/5.0/views#view-composers

Это может помочь:

 App::booted(function() { View::share('current_user', Auth::user()); }); 

Я попробовал, положил его в приложение / Провайдеры просто не работали. Альтернативный способ – создать глобальное промежуточное ПО и поместить View :: share ('currentUser', Auth :: user ()); там.

В Laravel 5 используется тот же метод, что и в laravel 4:

 View::share('current_user', Auth::User()); 

или с помощью помощника вида:

 view()->share('current_user', Auth::User()); 

См. http://laravel.com/docs/5.0/views