Я пытаюсь сделать 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());