Как поделиться данными для всех просмотра в Laravel 5.7 - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть форма для входа. Я хочу, чтобы при успешном входе в систему мой контроллер выбрал данные этого пользователя и предоставил доступ ко всем видам.

Я читаю документы по Laravel. Этот советует мне использовать "View :: share ('key', 'value');" в загрузочном методе AppServiceProvider, но я не знаю, как вызвать его в моем контроллере

мой контроллер:

if( Auth::attempt(['mssv' => $username,'password' =>$password])) {
                $user=SinhVien::where('mssv',$username)->first();

       //i want to share $user to all view in here

                $success = new MessageBag(['successlogin' => 'Login Success]);
                return redirect()->back()->withErrors($success);
            }
else {
            $errors = new MessageBag(['errorlogin' => 'Login Fail']);
            return redirect()->back()->withErrors($errors);
        }

и во всех видах лезвия я использую:

{{$user->name}}

Пожалуйста, помогите!

Ответы [ 3 ]

0 голосов
/ 16 ноября 2018
<!-- Stored in resources/views/layouts/app.blade.php -->

<html>
<head>
    <title>App Name - @yield('title')</title>
</head>
<body>
    <header>
     <div>
      @if(auth()->user()) 
          {{ auth()->user()->name }} 
       @else 
           <button>login</button> 
      @endif
      <div>
   </header>

    <div class="container">
        @yield('content')
    </div>
</body>

РЕДАКТИРОВАТЬ:

{{ auth()->user->name }} исправлено -> {{ auth()->user()->name }}

0 голосов
/ 16 ноября 2018

В ваших блейдах вы получите доступ к key из View::share('key', 'value');, который вы вставили в AppServiceProvider.

То есть, если ключ user, в ваших блейдах вы просто используете переменную $user.

0 голосов
/ 16 ноября 2018

Вы можете получить доступ к auth() непосредственно в представлении.

@if(auth()->user()){{auth()->user()->name}}@endif
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...