2016-12-04 22 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