Yii2. VerbFilter. Ограничение по типу запроса.


В коробке Yii2 есть отличный фильтр, позволяющий ограничить доступ к Вашим действиям, исходя из типов запросов — т.е. GET, POST, PUT, DELETE.

Итак, работа с фильтром предельно проста. В каждом контроллере, где Вы хотите применять фильтрацию добавляем в секцию use:

use yii\filters\VerbFilter;

Далее, в теле класса нужно добавить поведение verbs, которое, в общем виде будет иметь такой вид:

public function behaviors()
{
    return [
    'verbs' => [
        'class' => \yii\filters\VerbFilter::className(),
        'actions' => [
            'index'  => ['get'],
            'view'   => ['get'],
            'create' => ['get', 'post'],
            'update' => ['get', 'put', 'post'],
            'delete' => ['post', 'delete'],
        ],
    ];
}

Итак, что мы здесь имеет. Список Ваших действия следует заполнить в блоке actions. Здесь ключем будет имя действия (причем обратите внимание, что для действия из нескольких слов — следует указывать имя через дефис. Например, actionTwoWords — следует указать, как two-words), а значением — массив с именованием типов запросов, которые разрешены.

Логика состоит в том, что запрещены все, которые не разрешены — поэтому будьте внимательны.

Вот так просто можно ограничить доступ к вашим действиям. Удачи!

, ,

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *