Laravel make view не изменяется в URL

Я использую промежуточное программное обеспечение для перенаправления пользователей, если они не соответствуют определенным критериям (не приняли условия!). Они перенаправлены на /terms,

Middleware:

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); работает так же, как и в других функциях?

1 ответ

Решение

Вместо того чтобы возвращать "домашний" вид из действия "принять условия", верните перенаправление на фактический домашний маршрут.

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

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

Другие вопросы по тегам