Может войдёшь?
Черновики Написать статью Профиль

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

перевод документация 4.x

  1. 1. Базовый ввод
  2. 2. Cookies
  3. 3. Старый ввод
  4. 4. Файлы
  5. 5. Информация о запросе
Этот перевод актуален для англоязычной документации на (ветка 4.1) и (ветка 4.0). Опечатка? Выдели и нажми Ctrl+Enter.

Базовый ввод

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

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

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

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

PHP
$name Input::get('name''Sally');

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

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

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

PHP
$input Input::all();

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

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

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

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

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

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

Cookies

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

Чтение cookie

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

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

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

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

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

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

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

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

PHP
$cookie Cookie::forever('name''value');

Старый ввод

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

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

PHP
Input::flash();

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

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

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

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

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

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

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

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

PHP
Input::old('username');

Файлы

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

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

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

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

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

+ 4.1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

PHP
$uri Request::path();
+ 4.1

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

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

PHP
$method Request::method();

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

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

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

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

PHP
$url Request::url();

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

PHP
$segment Request::segment(1);

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

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

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

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

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

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

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

PHP
if (Request::ajax()) {
  
//
}
+ 4.1

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

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

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

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

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

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

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

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

Комментарии (1)

dima9595

Добавьте: Request::getClientIp() — получение IP адреса клиента.

Написать комментарий

Разметка: ? ?

Авторизуйся, чтобы прокомментировать.