2017-01-05 2 views
1

저는 laravel 5.3을 사용 중이며 Hesto/multi-auth 패키지를 사용하고 있습니다. 내 모든 home.blade가 정상적으로 작동하고 있습니다. 내 탐색 모음에서 현재 로그인 사용자를 반환합니다. 그러나 새로운보기를 만들 때마다 내 탐색 표시 줄을 확장 할 때마다 내 로그인 표시 줄에 사용자 이름 대신 "LOGIN REGISTER"가 표시됩니다.Laravel 5.3 Auth : user() : 사용자 대신 게스트로 로그인했습니다.

그래서 저는 home.blade에있을 때 성공적으로 사용자로 로그인했지만 다른보기로 이동하면 게스트로 읽습니다. 견본으로, 나는 나의 welcome.blade를 실험했다.

내 사용자 중 한 명이 내 경로입니다.

Route::group(['prefix' => 'customer', 'middleware' => 'customer'], function() { 


Route::model('customer' , 'App\Customer'); 
    Route::get('/login', 'CustomerAuth\[email protected]'); 
    Route::post('/login', 'CustomerAuth\[email protected]'); 
    Route::post('/logout', 'CustomerAuth\[email protected]'); 

    Route::get('registration_form', function() 
    { 
     return view('customer/auth/registration_form'); 
    }); 
    Route::post("register_customer", 'CustomerAuth\[email protected]'); 

    Route::post('/password/email', 

'CustomerAuth\[email protected]'); 
     Route::post('/password/reset', 'CustomerAuth\[email protected]'); 
     Route::get('/password/reset', 'CustomerAuth\[email protected]'); 
     Route::get('/password/reset/{token}', 'CustomerAuth\[email protected]'); 
    }); 

내 kernel.php

protected $routeMiddleware = [ 
     'business' => \App\Http\Middleware\RedirectIfNotBusiness::class, 
     'business.guest' => \App\Http\Middleware\RedirectIfBusiness::class, 
     'customer' => \App\Http\Middleware\RedirectIfNotCustomer::class, 
     'customer.guest' => \App\Http\Middleware\RedirectIfCustomer::class, 
     'auth' => \Illuminate\Auth\Middleware\Authenticate::class, 
     'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 
     'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class, 
     'can' => \Illuminate\Auth\Middleware\Authorize::class, 
     'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, 
     'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, 
    ]; 

컨트롤러

공공 기능 showWelcome (고객 $ 고객) { 반환보기 ('환영'); }

public function showWelcome(Customer $customer) 
    { 
     return view('welcome'); 
} 


    public function __construct() 
    { 
     $this->middleware('customer'); 
    } 

    protected function guard() 
    { 
     return Auth::guard('customer'); 

은이 경로는 사용자가 loggedIn가 Auth::check()를 사용하는 경우 확인하려면 탐색 모음

@if (Auth::guest()) 
         <li><a href="{{ url('/customer/login') }}">Login</a></li> 
         <li><a href="{{ url('/customer/registration_form') }}">Register</a></li> 

        @else 
         <li class="dropdown"> 
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> 
           {{ Auth::user()->name }} <span class="caret"></span> 
          </a> 

          <ul class="dropdown-menu" role="menu"> 
           <li> 
            <a href="{{ url('/customer/logout') }}" 
             onclick="event.preventDefault(); 
               document.getElementById('logout-form').submit();"> 
             Logout 
            </a> 

            <form id="logout-form" action="{{ url('/customer/logout') }}" method="POST" style="display: none;"> 
             {{ csrf_field() }} 
            </form> 
           </li> 
          </ul> 
         </li> 
        @endif 
       </ul> 

답변

0

Route::get('/home', function() { 
    $users[] = Auth::user(); 
    $users[] = Auth::guard()->user(); 
    $users[] = Auth::guard('customer')->user(); 

    //dd($users); 

    return view('customer.home'); 

})->name('home'); 

파트를 폴더에 customer.php입니다.

당신이 hesto/다중 인증 패키지를 사용하는 고객 모델에 대한 인증을 생성하기 때문에이보기

@if(Auth::check()) 
    //user loggedIn 
    {!! auth()->user()->username !!} 
@else 
    Guest User 
@endif 
+0

아무 것도 표시되지 않습니다. – Ylla

+0

사용자 테이블의 사용자 이름 열 이름은 무엇입니까? –

+0

else 부분을 추가하면 게스트 사용자로 반환됩니다. 나는 {!!을 사용하고있다. auth() -> user() -> name!} – Ylla

0

이다 시도, 당신은 당신의 경우 조건이 같은 경비를 사용하여이를 확인해야합니다. 그것은 당신이 만드는 모든 인증에 대해 동일합니다

Auth::guard('customer')->check() 

, 예를 Auth::guard('business')->check()

하고 이름

Auth::guard('customer')->user()->name 
에 액세스하기위한

Auth::guard('customer')->user() 

를 사용합니다 특정 경비의 사용자 모델을 얻을 수

관련 문제