Обработка запросов в Yii 2.x

Вместо того, чтобы напрямую обращаться к переменным $_GET и $_POST для получения параметров запроса, рекомендуется обращаться к ним через компонент request. Рассмотрим таблицу с примерами:

 Примеры Эквивалент
$request = Yii::$app->request;
$get = $request->get();
вызов метода $_GET()
$get = $_GET;
$request = Yii::$app->request;
$get = $request->get('id');
вызов метода $_GET() c параметром
$id = isset($_GET['id']) ? $_GET['id'] : null;
$request = Yii::$app->request;
$get = $request->get('id', 10);
вызов метода $_GET() c параметром
$id = isset($_GET['id']) ? $_GET['id'] : 10;
$request = Yii::$app->request;
$get = $request->post);
вызов метода $_POST()
$post = $_POST;
$request = Yii::$app->request;
$get = $request->post('id');
вызов метода $_POST() c параметром
$id = isset($_POST['id']) ? $_POST['id'] : null;
$request = Yii::$app->request;
$get = $request->post('id', 10);
вызов метода $_POST() c параметром
$id = isset($_POST['id']) ? $_POST['id'] : 10;

Методы запроса

Для проверки типов запросов используюем следующие методы:

 Примеры Результат
Yii::$app->request->method
Определяем тип запроса
Get или Post или AJAX или PUT или ...
Yii::$app->request->isAjax
Является ли текущий запрос Ajax запросом
True или False
Yii::$app->request->isConsoleRequest
Является ли запрос консольным
True или False
Yii::$app->request->isDelete
Является ли запрос запросом на удаленние
True или False
Yii::$app->request->isFlash
Является ли запрос Flash запросом
True или False
Yii::$app->request->isGet
Является ли текущий запрос Get запросом
True или False
Yii::$app->request->isHead
Является ли запрос Head запросом
True или False
Yii::$app->request->isOptions
Является ли запрос Options запросом
True или False
Yii::$app->request->isPatch
Является ли запрос Patch запросом
True или False
Yii::$app->request->isPjax
Является ли запрос Pjax запросом
True или False
Yii::$app->request->isPost
Является ли текущий запрос Post запросом
True или False
Yii::$app->request->isPut
Является ли текущий запрос Put запросом
 True или False
Yii::$app->request->isSecureConnection
Осуществаялется ли запрос по защищенному соединению
True или False

Ссылки запроса и Http заголовки

Приведем еще несколько примеров полезных методов:

 Примеры Результат
Yii::$app->request->url
Возвращает текущий адрес
/admin/index.php/product?id=10
Yii::$app->request->absoluteUrl
Возвращает абсолютную ссылку
http://project.ru/admin/index.php/product?id=10
Yii::$app->request->hostInfo
Содержит имя хоста
http://project.ru
Yii::$app->request->pathInfo
Возвращает часть между адресом начального скрипта и параметрами запроса, которые идут после знака вопроса
/product
Yii::$app->request->queryString
Возвращает адрес , который содержит часть URL после знака вопроса
id=100
Yii::$app->request->baseUrl
Возвращает адрес, который является частью URL после информации о хосте и перед именем входного скрипта
/admin
Yii::$app->request->scriptUrl
Возвращает адрес, который содержит URL без информации о хосте и параметрах запроса
/admin/index.php
Yii::$app->request->serverName
Возвращает адрес, который содержит имя хоста в URL
project.ru
Yii::$app->request->serverPort
Возвращает адрес порта, который использует веб-сервер
80
Yii::$app->request->referrer
Вернет предыдущую абсолютную ссылку на страницу
 
Yii::$app->request->userAgent
Возвращает значение заголовка User-Agent
Mozilla/5.0 (Windows NT 6.2; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0
Yii::$app->request->userHost
Возвращает имя хоста пользователя
 
Yii::$app->request->userIP
Возвращает IP адрес пользователя
127.0.0.1
Yii::$app->request->securePort
Возвращает порт защищенного соединения
 443