Базовый ввод
Вы можете получить доступ ко всем данным, переданным приложению, используя всего несколько простых методов. Вам не нужно думать о том, какой тип 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. Вне зависимости от этого PHPInput::get()
будет работать одинаково.
Cookies
Все cookie, создаваемые Laravel, шифруются и подписываются специальным кодом — таким образом, если клиент изменит их значение, то они станут неверными.
$value = Cookie::get('name');
$response = Response::make('Hello World');
$response->withCookie(Cookie::make('name', 'value', $minutes));
Добавление cookie в очередь для следующего ответа
Если вы захотите задать cookie до того, как будет создан объект ответа, используйте метод PHPCookie::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() возвращает объект класса PHPSymfony\Component\HttpFoundation\File\UploadedFile
, который в свою очередь расширяет стандартный класс PHPSplFileInfo
, который предоставляет множество методов для работы с файлами.
добавлено в 4.1 ()
Перемещение загруженного файла
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();
Информация о запросе
Класс PHPRequest
содержит множество методов для изучения входящего запроса в вашем приложении. Он расширяет класс PHPSymfony\Component\HttpFoundation\Request
. Ниже — несколько полезных примеров.
$uri = Request::path();
добавлено в 4.1 ()
Соответствует ли запрос маске пути?
if (Request::is('admin/*')) {
//
}
$url = Request::url();
Извлечение сегмента URI (пути)
$segment = Request::segment(1);
$value = Request::header('Content-Type');
Чтение значения из PHP$_SERVER
$value = Request::server('PATH_INFO');
Использует ли запрос HTTPS?
if (Request::secure()) {
//
}
if (Request::ajax()) {
//
}
добавлено в 4.1 ()
Содержит ли запрос данные типа JSON?
if (Request::isJson())
{
//
}
Требует ли запрос данные типа JSON?
if (Request::wantsJson())
{
//
}
Определение запрашиваемого формата отклика
Метод PHPRequest::format()
вернёт запрашиваемый формат отклика на основе заголовка HTTP Accept:
if (Request::format() == 'json')
{
//
}
Комментарии (1)
Добавьте: Request::getClientIp() — получение IP адреса клиента.