пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

Типы запросов

Запросы и ввод

 

  1. 1. Базовый ввод
  2. 2. Cookies
  3. 3. Старый ввод
  4. 4. Файлы
  5. 5. Информация о запросе

Этот перевод актуален для англоязычной документации на 25.05.2014 (ветка 4.1) и 16.10.2014 (ветка 4.0). Опечатка? Выдели и нажми Ctrl+Enter.

Базовый ввод

Вы можете получить доступ ко всем данным, переданным приложению, используя всего несколько простых методов. Вам не нужно думать о том, какой тип HTTP-запроса был использован (GET, POST и т.д.) — методы работают одинаково для любого из них.

Получение переменной

$name = Input::get('name');

Получение переменной или значения по умолчанию, если переменная не была передана

$name = Input::get('name', 'Sally');

Была ли передана переменная?

if (Input::has('name')) {
  //
}

Получение всех переменных запроса

$input = Input::all();

Получение некоторых переменных

// Получить только перечисленные:
$input = Input::only('username', 'password');

// Получить все, кроме перечисленных:
$input = Input::except('credit_card');

При работе с переменными-массивами вы можете использовать точечную запись для доступа к их элементам:

$input = Input::get('products.0.name');

Некоторые JavaScript-библиотеки, такие как Backbone, могут передавать переменные в виде JSON. Вне зависимости от этого Input::get() будет работать одинаково.

Cookies

Все cookie, создаваемые Laravel, шифруются и подписываются специальным кодом — таким образом, если клиент изменит их значение, то они станут неверными.

Чтение cookie

$value = Cookie::get('name');

Добавление cookie к ответу

$response = Response::make('Hello World');

$response->withCookie(Cookie::make('name', 'value', $minutes));

Добавление cookie в очередь для следующего ответа

Если вы захотите задать cookie до того, как будет создан объект ответа, используйте метод Cookie::queue(). Cookie будет автоматически добавляться к окончательному ответу от вашего приложения.

Cookie::queue($name, $value, $minutes);

Создание cookie, которая хранится вечно

$cookie = Cookie::forever('name', 'value');

Старый ввод

Вам может пригодиться сохранение пользовательского ввода между двумя запросами. Например, после проверки формы на корректность вы можете заполнить её старыми значениями в случае ошибки.

Сохранение всего ввода для следующего запроса

Input::flash();

Сохранение некоторых переменных для следующего запроса

// Сохранить только перечисленные:
Input::flashOnly('username', 'email');

// Сохранить все, кроме перечисленных:
Input::flashExcept('password');

Обычно требуется сохранить ввод при переадресации на другую страницу — это делается легко:

return Redirect::to('form')->withInput();

return Redirect::to('form')->withInput(Input::except('password'));

Вы можете сохранять и другие данные внутри сессии, используя класс Session.

Получение старого ввода

Input::old('username');

Файлы

Получение объекта загруженного файла

$file = Input::file('photo');

Определение успешной загрузки

if (Input::hasFile('photo')) {
  //
}

Метод file() возвращает объект класса Symfony\Component\HttpFoundation\File\UploadedFile, который в свою очередь расширяет стандартный класс SplFileInfo, который предоставляет множество методов для работы с файлами.

+ 4.1

добавлено в 4.1 (25.05.2014)

Прошёл ли загруженный файл проверку?

if (Input::file('photo')->isValid())
{
  //
}

Перемещение загруженного файла

Input::file('photo')->move($destinationPath);

Input::file('photo')->move($destinationPath, $fileName);

Получение пути к загруженному файлу

$path = Input::file('photo')->getRealPath();

Получение имени файла на клиентской системе (до загрузки)

$name = Input::file('photo')->getClientOriginalName();

Получение расширения загруженного файла

$extension = Input::file('photo')->getClientOriginalExtension();

Получение размера загруженного файла

$size = Input::file('photo')->getSize();

Определение MIME-типа загруженного файла

$mime = Input::file('photo')->getMimeType();

Информация о запросе

Класс Request содержит множество методов для изучения входящего запроса в вашем приложении. Он расширяет класс Symfony\Component\HttpFoundation\Request. Ниже — несколько полезных примеров.

Получение URI (пути) запроса

$uri = Request::path();

+ 4.1

добавлено в 4.1 (25.05.2014)

Получение метода запроса

$method = Request::method();

if (Request::isMethod('post'))
{
  //
}

Соответствует ли запрос маске пути?

if (Request::is('admin/*')) {
  //
}

Получение URL запроса

$url = Request::url();

Извлечение сегмента URI (пути)

$segment = Request::segment(1);

Чтение заголовка запроса

$value = Request::header('Content-Type');

Чтение значения из $_SERVER

$value = Request::server('PATH_INFO');

Использует ли запрос HTTPS?

if (Request::secure()) {
  //
}

Сделан ли запрос через AJAX?

if (Request::ajax()) {
  //
}

+ 4.1

добавлено в 4.1 (25.05.2014)

Содержит ли запрос данные типа JSON?

if (Request::isJson())
{
  //
}

Требует ли запрос данные типа JSON?

if (Request::wantsJson())
{
  //
}

Определение запрашиваемого формата отклика

Метод Request::format() вернёт запрашиваемый формат отклика на основе заголовка HTTP Accept:

if (Request::format() == 'json')
{
  //
}

 

 


22.06.2017; 17:32
хиты: 144
рейтинг:0
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь