В примере приложения в SiteController есть кусок:
Код: Выделить всё
public function behaviors()
{
return [
...
'verbs' => [
'class' => VerbFilter::className(),
'actions' => [
'logout' => ['post'],
],
],
];
}
Попытка сделать один-в-один как тут приводит к тому, что ответ перестает оборачиваться в нужный формат (в моем случае json) и возвращается массив, что валит приложение
В гайде есть вариант с настройкой urlManager
Код: Выделить всё
[
'PUT,PATCH users/<id>' => 'user/update',
'DELETE users/<id>' => 'user/delete',
'GET,HEAD users/<id>' => 'user/view',
'POST users' => 'user/create',
'GET,HEAD users' => 'user/index',
'users/<id>' => 'user/options',
'users' => 'user/options',
]
В исходнике \yii\rest\Controller уже дается фильтр в таком виде
Код: Выделить всё
'verbFilter' => [
'class' => VerbFilter::className(),
'actions' => $this->verbs(),
],
Код: Выделить всё
protected function verbs()
{
return [];
}