Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 22.11.2016 18:26:10

Передать дополнительные параметры в форму логина

Доброго времени суток, есть задача передать дополнительные параметры в форму логина/регистрации. Задача указать пользователю, для доступа к какому разделу мы его просим авторизоваться,  думаю что сие нужно перехватывать где то на уровне, когда  middleware Auth выполняет проверку, и туда добавлять необходимые значения, но знаний если честно не хватает совершенно.
Что было попробовано:
Думал сперва передавать через штатный метод showLoginForm() Контролера Авторизации, но здесь возникает вариант, как получить тот самый url на который пользователь переходил до этого момента. Смотрел Redirect back(), что-то похожее, но во первых отдает сформированную страницу с редиректом а не адрес, во вторых передает далеко не всегда то что нужно в данном случае.


У кого есть идеи? Задача вроде достаточно тривиальная, сложно поверить что ее никто до этого не решал. И да, Laravel 5.3 последний релиз.

Не в сети

#2 23.11.2016 02:15:21

Re: Передать дополнительные параметры в форму логина

Не совсем понятно о чем речь)) Если вы хотите узнать с какой страницы пользователь пришел, для этого можно использовать

Request::headers->get('referer') 

Не в сети

#3 23.11.2016 02:20:54

Re: Передать дополнительные параметры в форму логина

Еще наверно придется сравнить host и uri для етого можно воспользоваться  пиайчпишной функцией parse_url

Не в сети

#4 24.11.2016 09:02:46

Re: Передать дополнительные параметры в форму логина

Нет, задача в другом. Например, у меня есть главная страница, и с нее идут линки на /ej и /questions в которые можно попасть только по авторизации, мне же нужно, чтобы при попытке захода скажем на /ej и перекидывании на форму логина, я мог в нее передать, что изначально пользователь хотел зайти именно на /ej, и от этого сделать некоторые дополнительные обработки.

Не в сети

#5 24.11.2016 13:31:49

Re: Передать дополнительные параметры в форму логина

в контроллере, в момент переброса на логин. пиши в сессию путь, куда вернуться.

в app/Http/Middleware/RedirectIfAuthenticated.php
возврат измени на выборку из сесси сохранённого пути.

!могу ошибатьс, смотрел побыстрому.

Не в сети

#6 26.11.2016 15:35:40

Re: Передать дополнительные параметры в форму логина

$ref = parse_url($request->headers->get('referer'));
// проверяем сущиствует ли урл  
if ((array_key_exists('host', $ref) and (array_key_exists('path', $ref))) {
// если существует то делаем 
if ( path =  '/ej') {
// тут делаем что то
}

Не в сети

#7 26.11.2016 16:34:10

Re: Передать дополнительные параметры в форму логина

bibimoto пишет:
$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];

Не в сети

Подвал раздела