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

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

гр Гленн

6

Решение

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

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

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

use View;
use Auth;

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

11

Другие решения

Я использую 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 фасад

use Auth, View;

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

10

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

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

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

1

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

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

или используя помощник вида:

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

Смотрите в http://laravel.com/docs/5.0/views

1
По вопросам рекламы [email protected]