Вместо того, чтобы напрямую обращаться к переменным $_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 |
Приведем еще несколько примеров полезных методов:
Примеры | Результат |
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 |