Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Доброго времени суток, есть задача передать дополнительные параметры в форму логина/регистрации. Задача указать пользователю, для доступа к какому разделу мы его просим авторизоваться, думаю что сие нужно перехватывать где то на уровне, когда middleware Auth выполняет проверку, и туда добавлять необходимые значения, но знаний если честно не хватает совершенно.
Что было попробовано:
Думал сперва передавать через штатный метод showLoginForm() Контролера Авторизации, но здесь возникает вариант, как получить тот самый url на который пользователь переходил до этого момента. Смотрел Redirect back(), что-то похожее, но во первых отдает сформированную страницу с редиректом а не адрес, во вторых передает далеко не всегда то что нужно в данном случае.
У кого есть идеи? Задача вроде достаточно тривиальная, сложно поверить что ее никто до этого не решал. И да, Laravel 5.3 последний релиз.
Не в сети
Не совсем понятно о чем речь)) Если вы хотите узнать с какой страницы пользователь пришел, для этого можно использовать
Request::headers->get('referer')
Не в сети
Еще наверно придется сравнить host и uri для етого можно воспользоваться пиайчпишной функцией parse_url
Не в сети
Нет, задача в другом. Например, у меня есть главная страница, и с нее идут линки на /ej и /questions в которые можно попасть только по авторизации, мне же нужно, чтобы при попытке захода скажем на /ej и перекидывании на форму логина, я мог в нее передать, что изначально пользователь хотел зайти именно на /ej, и от этого сделать некоторые дополнительные обработки.
Не в сети
в контроллере, в момент переброса на логин. пиши в сессию путь, куда вернуться.
в app/Http/Middleware/RedirectIfAuthenticated.php
возврат измени на выборку из сесси сохранённого пути.
!могу ошибатьс, смотрел побыстрому.
Не в сети
$ref = parse_url($request->headers->get('referer'));
// проверяем сущиствует ли урл
if ((array_key_exists('host', $ref) and (array_key_exists('path', $ref))) {
// если существует то делаем
if ( path = '/ej') {
// тут делаем что то
}
Не в сети
$ref = parse_url($request->headers->get('referer')); // проверяем сущиствует ли урл if ((array_key_exists('host', $ref) and (array_key_exists('path', $ref))) { // если существует то делаем if ( path = '/') { // тут делаем что то }
Извиняюсь коряво написал а редактировать нельзя.
// parse_url() возвращает урл в виде масива
$ref = parse_url($request->headers->get('referer'));
// проверяем сущиствует ли реф урл (https://laravel.ru/) и реф ури (/ej)
if ((array_key_exists('host', $ref) and (array_key_exists('path', $ref))) {
// если еслс
if ( $ref[path] == 'ej') {
// тут делаем что то, к примеру
$this->role = 'subscriber';
}
if ( $ref[path] == 'questions') {
$this->role = 'autor';
}
$this->redirect = $ref[path];
Не в сети
Страницы 1