Laravel 提出查看请求在 URL 中没有变化

Laravel make view request doesn't change in the URL

如果用户不符合特定条件(尚未接受条款和条件!),我正在使用中间件来重定向用户。他们被重定向到 /terms.

中间件:

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

        return $next($request);
    }

以上完美运行。

一旦用户 'accepts' 条款和条件,我想将他们重定向到主页(目前有效),但是,URL 不会改变。它仍然停留在 /terms,即使它们在主页上。

控制器'accept 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); 的工作方式与其他功能不同?

在您的 "accept terms" 操作的 "home" 视图中,return 不是 return 重定向到实际的主页路线。

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

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