Laravel получает предполагаемый URL-адрес

Я использую общий 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 или другое, чтобы выполнить перенаправление.