- Laravel Framework Russian Community
- Пролог
- Начало работы
- Архитектурные концепции
- Основное
- Погружение
- Безопасность
- База данных
- Eloquent ORM
- Тестирование
- Пакеты
- HTTP переадресация
- Создание переадресации
- Переадресация на именованные маршруты
- Передача параметров через модели Eloquent
- Перенаправление на методы контроллера
- Перенаправление с данными сеанса
- Переадресация Laravel при выходе из системы не работает
- ОТВЕТЫ
- Ответ 1
- Ответ 2
- Ответ 3
- Ответ 4
- Ответ 5
- Ответ 6
- Ответ 7
- Laravel Framework Russian Community
- Пролог
- Начало работы
- Основы архитектуры
- Основы
- Фронтенд
- Безопасность
- Копаем глубже
- База данных
- Eloquent ORM
- Тестирование
- Официальные пакеты
- HTTP редиректы
- Создание редиректов
- Редиректы на именованные роуты
- Получение параметров из моделей Eloquent
- Редиректы на методы контроллера
- Редирект с данными сессии
- Переадресации
- Создание переадресаций
- Переадресация на именованные маршруты
- Переадресация на действия контроллера
- Переадресация с данными сессии
- Перенаправление назад с вводом, не работающим в laravel 5.5
- 5 ответов
Laravel Framework Russian Community
Пролог
Начало работы
Архитектурные концепции
Основное
Погружение
Безопасность
База данных
Eloquent ORM
Тестирование
Пакеты
HTTP переадресация
Создание переадресации
Переадресация является экземпляром класса Illuminate\Http\RedirectResponse и содержит в ответе правильные заголовки, необходимые для перенаправления пользователя на другой URL. Есть несколько способов сгенерировать экземпляр RedirectResponse . Самый простой способ — использовать глобальный помощник redirect :
Иногда необходимо перенаправить пользователя в его предыдущее местоположение, например, когда отправленная форма недействительна. Это можно сделать с помощью глобальной вспомогательной функции back . Поскольку эта функция использует сессии, убедитесь, что маршрут, вызывающий функцию back , использует группу посредников web или применяет все необходимые посредники сессии:
Переадресация на именованные маршруты
Когда вы вызываете помощник redirect без параметров, возвращается экземпляр Illuminate\Routing\Redirector , что позволяет вам вызывать любой метод в экземпляре Redirector . Например, чтобы сгенерировать RedirectResponse на именованный маршрут, вы можете использовать метод route:
Если ваш маршрут имеет параметры, вы можете передать их в качестве второго аргумента методу route :
Передача параметров через модели Eloquent
Если вы перенаправляете на маршрут с параметром «ID», который заполняется из модели Eloquent, вы можете передать саму модель. ID будет извлечен автоматически:
Если вы хотите настроить значение, которое помещается в параметр маршрута, вы должны переопределить метод getRouteKey в вашей модели Eloquent:
Перенаправление на методы контроллера
Вы также можете обеспечить перенаправления на методы контроллера. Для этого передайте имя контроллера и его метода методу action экземпляра redirect :
Если метод контроллера требует параметров, вы можете передать их в качестве второго аргумента методу action :
Перенаправление с данными сеанса
Перенаправление на новый URL-адрес и передача данных в сеанс обычно выполняются одновременно. Обычно это делается после успешного выполнения действия, когда вы отправляете сообщение об успешном завершении сеанса. Для удобства вы можете создать экземпляр RedirectResponse и передать данные в сеанс в цепочке методов:
Вы можете использовать метод withInput , предоставляемый экземпляром RedirectResponse , для передачи входных данных текущего запроса в сеанс перед перенаправлением пользователя на новый URL. После того как данные были переданы в сеанс, вы можете легко получить их во время следующего запроса:
После перенаправления вы можете отобразить всплывающее сообщение сеанса. Например, используя синтаксис Blade:
Источник
Переадресация Laravel при выходе из системы не работает
Я использую рамки laravel 4. Когда я использовал перенаправление после Auth:: logout(), перенаправление не работало. Я также использовал View:: make(), но тот же «Упс, похоже, что что-то пошло не так». ошибка поднимается.
Это код выхода. Я использую. Кто-нибудь, пожалуйста, помогите мне с этим.
routes.php
HTML
Это показывает мой отладчик.
ОТВЕТЫ
Ответ 1
Возможно, вам не хватает значка_потока для таблицы пользователей.
Laravel требует «nullable remember_token из VARCHAR (100), ТЕКСТ или эквивалент вашей таблицы пользователей».
Обновление для новой документации
В Laravel 4.2 теперь есть метод, который вы можете использовать с построителем схемы, чтобы добавить этот столбец.
Ответ 2
Если у вас есть Laravel 4.2, вы можете сделать это:
Командная строка:
После этого откройте файл app/database/migrations/2014_10_16_124421_add_remember_token_to_users_table и отредактируйте его следующим образом:
Ответ 3
Вот пример кода из того, как я обрабатываю пользователей в моей системе, используя Laravel 4. Я не уверен, почему ваш не работает, и вам будет хорошо видеть ваш маршрут и html-код, который запускает процесс выхода из системы также.
Маршрут
Кнопка/ссылка HTML, вызывая выход из системы
Функция контроллера Обработка выхода
Вот и получилось! Вы должны заменить его именами маршрутов и функциями контроллера. Это должно сработать! Если это не так, отправьте свой маршрут и html-код! Ура!
Ответ 4
В связи с текущим обновлением Laravel в таблице пользователя должен быть столбец «remember_token» . Это решает проблему.
Ответ 5
Я узнал, что получаю ошибку выхода из системы в своем приложении, потому что использовал
Не забудьте использовать вместо этого следующее.
Это работало гладко.
Ответ 6
Вам нужно добавить столбец updated_at в таблицу SQL user_tbl. Если вы не хотите его использовать. вы также можете отключить временные метки в своей модели.
Ответ 7
для вашей проблемы, вы можете передать значение null или вы можете отключить значение remember_token в вашем php файле модели как
Источник
Laravel Framework Russian Community
Пролог
Начало работы
Основы архитектуры
Основы
Фронтенд
Безопасность
Копаем глубже
База данных
Eloquent ORM
Тестирование
Официальные пакеты
HTTP редиректы
Создание редиректов
Отклики для редиректов — это экземпляры класса Illuminate\Http\RedirectResponse ; они содержат соответствующие заголовки, необходимые для переадресации пользователя на другой URL. Есть несколько способов создания экземпляров RedirectResponse . Самый простой способ — использовать глобальный хелпер redirect :
Иногда необходимо перенаправить пользователя в предыдущее место, например, когда в отправленной форме обнаружены ошибки. Вы можете сделать это с помощью глобального хелпера back . Так как для этой функции используются сессии, убедитесь в том, что вызывающий функцию back роут использует группу посредников web или использует всех посредников сессий:
Редиректы на именованные роуты
При вызове хелпера redirect без параметров возвращается экземпляр Illuminate\Routing\Redirector , позволяя вам вызывать любой метод на экземпляре Redirector . Например, вы можете использовать метод route , чтобы сгенерировать RedirectResponse на именованный роут:
Если у вашего роута есть параметры, то вы можете передать их в качестве второго аргумента метода route :
Получение параметров из моделей Eloquent
Если вы делаете переадресацию на роут с параметром «ID», который был получен из модели Eloquent, то вы можете передать саму модель. ID будет извлечён автоматически:
Если вы хотите изменить значение, которое помещается в параметр роута, вам надо переопределить метод getRouteKey в вашей модели Eloquent:
Редиректы на методы контроллера
Также вы можете создать редиректы на методы контроллера. Для этого передайте контроллер и имя метода контроллера в метод action . Помните, что вам не надо указывать полное пространство имён контроллера, потому что RouteServiceProvider Laravel автоматически задаст его сам:
Если роуту вашего контроллера нужны параметры, то вы можете передать их вторым аргументом метода action :
Редирект с данными сессии
Редирект на новый URL и передача данных в сессию обычно происходят одновременно. Обычно это делается после успешного выполнения действия, когда вы передаёте в сессию сообщение об успехе. Для удобства вы можете создать экземпляр RedirectResponse и передать данные в сессию в одной цепочке вызовов:
Когда пользователь переадресован, то вы можете вывести сообщение из сессии. Например, используя синтаксис Blade:
Источник
Переадресации
HTTP Redirects →
Создание переадресаций
Отклики для переадресации — это экземпляры класса PHP Illuminate \ Http \ RedirectResponse , они содержат соответствующие заголовки, необходимые для переадресации пользователя на другой URL. Есть несколько способов создания экземпляров PHP RedirectResponse . Простейший способ — использовать глобальную вспомогательную функцию PHP redirect () :
Иногда необходимо перенаправить пользователя в предыдущее место, например, когда в отправленной форме обнаружены ошибки. Вы можете сделать это с помощью глобальной вспомогательной функции PHP back () . Поскольку для этого используются сессии, убедитесь в том, что вызывающий функцию PHP back () маршрут использует группу посредников web или использует всех посредников сессий:
Переадресация на именованные маршруты
При вызове вспомогательной функции PHP redirect () без параметров возвращается экземпляр PHP Illuminate \ Routing \ Redirector , позволяя вам вызывать любой метод на экземпляре PHP Redirector . Например, чтобы создать PHP RedirectResponse на именованный маршрут, вы можете использовать метод PHP route () :
Если у вашего маршрута есть параметры, то вы можете передать их в качестве второго аргумента метода PHP route () :
Получение параметров из моделей Eloquent
Если вы делаете переадресацию на маршрут с параметром ID , который был получен из модели Eloquent, то вы можете просто передать саму модель. ID будет извлечён автоматически:
Если вы хотите изменить значение, которое помещается в параметр маршрута, вам надо переопределить метод PHP getRouteKey () в вашей модели Eloquent:
Переадресация на действия контроллера
Также вы можете создать переадресацию на действия контроллера. Для этого передайте контроллер и имя действия в метод PHP action () . Обратите внимание: вам не надо указывать полное пространство имён контроллера, потому что PHP RouteServiceProvider задаст его сам:
Если маршруту вашего контроллера нужны параметры, то вы можете передать их вторым аргументом метода PHP action () :
Переадресация с данными сессии
Обычно переадресация на новый URL происходит одновременно с передачей данных в сессию. Обычно это делается после успешного выполнения действия, когда вы передаёте в сессию сообщение об успехе. Для удобства вы можете создать экземпляр PHP RedirectResponse и передать данные в сессию в одной цепочке вызовов:
Когда пользователь переадресован, то вы можете вывести сообщение из сессии. Например, с помощью синтаксиса Blade:
Источник
Перенаправление назад с вводом, не работающим в laravel 5.5
Я использовал перенаправление назад с вводом много раз ранее. Но в этом проекте я не могу этого сделать. Это мой метод controller , который обрабатывает запрос формы:
Это моя форма клинка:
Мой Kernel.php выглядит следующим образом:
Я не нахожу ошибки или что-то не так. Есть что-нибудь, что ты видишь? Есть ли какой-нибудь метод для отладки такого поведения? Так заранее.
5 ответов
Мой подход заключается в использовании FormRequest.
Теперь вы измените подпись verifyMobileCode(. ) на следующую verifyMobileCode(App\Http\Requests\VerifyCodeRequest $request) .
Теперь код выполняет тело функции , только если мы прошли проверку, поэтому нам нужно обновить пользовательский экземпляр, и все готово.
Внутри модели пользователя добавить функцию verify()
Если ваш вышеприведенный подход не работает, есть проблема с вашим app/Http/Kernel.php . Вы использовали
Дважды. Вы должны удалить один. Вероятно, первый.
Ознакомьтесь с kernel.php Laravel.
В контроллере
В поле зрения
Если вы хотите получить проверенное значение поля ввода, то вам нужно использовать класс laravel FORM для полей , а также
Ваш контроллер должен выглядеть так:
Также создайте файл с именем errors.blade.php в ресурсах / представлениях и поместите следующий код:
Надеюсь, это работает для вас. Но вам не нужно отображать старые входные данные, так как код будет неправильным или что-то случилось. Так что это не обязательно
Заменить ->withInput($request->all()); на ->withInput();
Если вы не хотите использовать один из входных данных
Источник