Main > Yii > Yii2: Шпаргалка по работе с роутами

Yii2: Шпаргалка по работе с роутами

31.07.2018 0 comments » Views: 1,815

Yii 2

Часто приходится работать с различными проверками роутов в Yii2. И практически всегда, я забываю или начинаю путаться где и  с помощью каких методов можно получить то или иное значение связанное с роутами и как результат приходится копаться в исходниках. В этом посте я соберу кусочки кода, с объяснением что они возвращают.

Получить текущий controller

Результат: Object, по-умолчанию это будет инстанс \yii\web\Controller

Получить текущий action

Результат: Object, по-умолчанию это будет инстанс \yii\base\Action

Получить название текущего controller-а

Результат: String. В случае ['site/index', 'param'=>'abc'], это "site".

Получить название текущего action-а

Результат: String. В случае ['site/index', 'param'=>'abc'], это "index".

Получить текущий route

Результат: String. В случае ['site/index', 'param'=>'abc'], это "site/index".

Проверить совпадает ли текущий route с указанным

Обратите внимание, что проверяется только route, без параметров, т.е. в случае сравнения ['site/index'] и ['site/index', 'param'=>1] это сравнение скажет что route-ы идентичны

Получить параметры текущего url

Результат: Array. В случае ['site/index', 'param'=>'abc'], вернет ['param'=>'abc'].

Сравнить параметры текущего url и указанного

Результат: Null или True или False

Проверить совпадает ли текущий route с указанным включая GET параметры

Пример использования:

Создать объект контроллера из URL

Результат: Null | False | Array. В случае если объект создан, вернет массив [(object) controller, (string) actionId].

Создать объект action-а из URL

Результат: Null | (Object yii\base\Action). В случае если объект создан, вернет объект \yii\base\Action.

Проверить совпадает ли текущий route с указанными в массиве

Пример использования:

Вместо controller-а и action-а можно использовать символ "*", в этом случае проверка совпадет с любым controller-ом, action-ом

Пока все, если у Вас есть чем дополнить эту статью, пишите в комментарии.

Author: | Rating: 4/5 | Tags: , ,

Leave a Reply

Your email address will not be published. Required fields are marked *

Allowed HTML-tags: <a>, <code>, <i>, <em>, <strong>, <b>, <u>, <strike>