Ограничения по типам запросов в Yii 2, компонент VerbFilter

В Yii2 встроен удобный фильтр ограничения доступа к экшену по типам запросов к нему, компонент называется VerbFilter, а используется он как ключ verbs в поведении (behaviors) контроллера. Под катом подробнее.

Для использования данного фильтра добавляем в секцию use следующее содержимое:

use yii\filters\VerbFilter;

Далее в поведение добавляем секцию verbs, вместе с поведением это выглядит так:

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

В нашем случае к экшену index запрещены любые запросы и при попытке зайти на эту страницу будет отдана 405 ошибка — метод не поддерживается (Method Not Allowed), точно такая же ошибка будет выдана при попытке послать get запрос к экшену delete или post к view. Таким образом данный фильтр работает по принципу белых списков, то есть все что не разрешено, то запрещено. Но для того чтобы фильтр начал работать нужно название action добавить в секцию actions поведения фильтра verbs.

comments powered by HyperComments
При копировании материалов обратная ссылка на play-stop.ru желательна обязательна!