Я использую общий httpRequest для входа, поэтому я мог бы использовать Redirect::intended();
чтобы привести пользователя к URL-адресу, прежде чем они перейдут на страницу входа. Все работает хорошо.
Теперь я изменил логин на ajax-запрос, я могу только перенаправить URL-адрес в javascript сейчас. Поэтому я должен передать намеченный URL-адрес передним концом, а затем сделать window.location=url
Проблема в том, что я не могу получить intended/origina
l url. Может ли любой эксперт по laravel помочь мне?
Когда вы показываете регистрацию формы, вы можете захватить предполагаемый url
из session
если он доступен, и передать его в представление, а затем перенаправить с помощью window.location
.
Так. как захватить intended url
?
$intended_url = Session::get('url.intended', url('/')); Session::forget('url.intended');
Здесь первый аргумент intended url
если он доступен в session
а по умолчанию используется домашняя страница с использованием вспомогательного метода url('/')
, поэтому $intended_url
target_url всегда будет содержать url
, предназначенный или defaulr. Затем, когда вы загружаете представление, передайте $intended_url
используя следующее:
return View::make('login')->with('intended_url', $intended_url);
Затем используйте его в виде:
window.location = $intended_url;
Кроме того, вы можете настроить View Composer так, чтобы всякий раз, когда отображается вид / форма login
в login
intended url
будет доступен в этом представлении, и вы можете сделать это, используя это:
View::composer('login', function($view){ $intended_url = Session::get('url.intended', url('/')); Session::forget('url.intended'); return $view->with('intended_url', $intended_url); });
Здесь login
– это имя вида для страницы входа, если это что-то еще в вашем случае, а затем измените его на соответствующее имя вашего login
. Вы можете сохранить этот код в папке app/start
внутри файла «global.php» или сохранить его в отдельном файле и включить этот файл внутри файла global.php
используя это (в конце):
require 'view_composer.php';
Предполагается, что имя файла будет view_composer.php
, присутствующее в папке app/start
.
В действии вашего контроллера используйте:
$url = Redirect::intended( ... )->getTargetUrl();
(Где ...
является обратным адресом)
Затем верните его в ответ JSON и используйте window.location
или другое, чтобы выполнить перенаправление.