2015-02-25 3 views
0

Я новичок в laravel и хочу достичь следующих результатов, допустим, гость попадает на страницу результатов после поиска сроков, а затем решает войти в систему, как я могу получить пользователю войти в систему и сохранить тот же странице результатов в Laravel я следующий код в filters.php у меня есть следующие:Перенаправляет аутентифицированный пользователь обратно на первоначально запрошенный URL-адрес или URL-адрес по умолчанию в laravel

Route::filter('guest', function() 
{ 
    if (Auth::check()) return Redirect::to('/'); 
}); 

затем в контроллере пользователя у меня есть следующие

функция входа в систему

public function login() 
{ 
    return View::make('users.login'); 
} 

ручка Войти функция общественная функция handleLogin() { $ Данные = Input :: только ([ 'адрес электронной почты', 'пароль']);

if(Auth::attempt(['email' => $data['email'], 'password' => $data['password']])){ 
     return Redirect::to('/profile');    
    } 
    return Redirect::route('login')->withInput(); 

} 

сейчас страница по умолчанию после входа переходит на страницу профиля, но я хочу, чтобы пользователь, чтобы вернуться туда, где он был до входа в систему.

любая помощь? благодаря

ответ

0

Я думаю, что это то, что вы ищете

return Redirect::back(); 
+0

спасибо за ответ, правда, что он берет обратно в URL страницы результатов, но я получаю ошибка не распознавания запроса, который был сделан при выполнении поиска. – user1272145

+0

Если ваш поиск использует метод POST, так что он не сможет распознать запрос, потому что он не был сохранен. Возможно, вы можете использовать метод GET для своего поиска? – henrily

0

В Laravel 4, вы можете использовать Redirect::guest и Redirect::intended для достижения вашей цели легко.

Redirect::guest положить текущий URL-адрес в сеанс перед перенаправлением на целевой URL-адрес.

Redirect::intended проверить, есть ли какой-либо URL, сохраненный в сеансе, перенаправить на этот URL-адрес или по умолчанию, если он не существует.

В действии, код может быть:

if(Auth::attempt(['email' => $data['email'], 'password' => $data['password']])){ 
    return Redirect::guest('/profile');    
} 

и после того, как журнал в

if (Auth::check()) return Redirect::intended(); 
Смежные вопросы