К примеру, у нас есть действие изменяющее данные. Данные берутся из глобального массива $_REQUEST. Он включает в себя и POST и GET данные – вообще все данные приходящие в запросе. Но Yii (точнее код сгенерированный Gii) по умолчанию не проверяет в действии, какой тип данных пришел. И это может быть опасно.

Вот такое действие будет корректно выполнено, если переменная id придет через POST или через GET, без разницы.

Что бы выполнять это действие, только если пришел POST запрос, можно сделать так:

Но есть еще один вариант – использовать filters():

Теперь нужное действие, а данном случае actionDelete() будет выполняться, только когда приходит POST запрос.

Это может упростить код, но несколько снизит его читаемость. Поэтому лучше в действии комментировать, что данные фильтруются.

Yii – использование filters для разрешения только POST запросов
Метки: