2016-12-04 11 views
1

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

Middleware:

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

     return $next($request); 
    } 

Вышеприведенные работает отлично.

Как только пользователь «примет» условия, я хочу перенаправить их на главную страницу (которая в настоящее время работает), однако URL-адрес не изменяется. Он по-прежнему остается на /terms, хотя они находятся на главной странице.

Controller «принять условия»:

$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

 Смежные вопросы

  • Нет связанных вопросов^_^