2016-12-04 46 views
1

如果用戶不符合特定條件(未接受條款和條件!),我正在使用中間件重定向用戶。他們被重定向到/termsLaravel使查看請求不會在URL中更改

中間件:

public function handle($request, Closure $next) 
    { 
     if (Auth::user()->terms === 0) { 
      return redirect()->route('getTerms'); 
     } 

     return $next($request); 
    } 

上述作品完美。

一旦用戶「接受」條款和條件,我想將它們重定向到主頁(當前有效),但是URL不會更改。儘管它們在主頁上,它仍然停留在/terms

控制器「接受條款」:

$user = User::find(Auth::id()); 
$user->terms = 1; 
$user->save(); 

return view('home'); 

需要的URL回重定向到/home的原因是因爲我有一個佈局條件,我需要一個視圖中包含當用戶是不在/term url。

佈局條件:

@if(!Request::is('terms')) 
    @include('layouts.check') 
@endif 

爲什麼沒有return view('home);工作一樣,因爲它是在其他功能呢?

回答

2

不是從您的「接受條款」操作中返回「家庭」視圖,而是將重定向返回到實際的家庭路線。

return redirect()->route('home'); 

https://laravel.com/docs/5.3/responses#redirects

+0

作品完美,我簡直不敢相信我忽略了一個重定向!非常感謝@LorenzSchaef。 – Ben