Как разрешить доступ к PUT DELETE в RESTfull yii2 ?
Использую angularjs.
В Yii2 по умолчанию уже есть поддержка всех методов REST API, для этого достаточно наследовать свой контроллер от контроллера \yii\rest\ActiveController.
Приведу на примере пользователей:
namespace app\controllers;
use yii\rest\ActiveController;
class UserController extends ActiveController
{
public $modelClass = 'app\models\User';
}
Потом в конфигурации прописать в urlManager следующие правила:
'urlManager' => [
'enablePrettyUrl' => true,
'enableStrictParsing' => true,
'showScriptName' => false,
'rules' => [
['class' => 'yii\rest\UrlRule', 'controller' => 'user'],
],
]
И тогда у вас доступны все методы REST API:
GET /users: постраничный вывод всех пользователей; HEAD /users: общий вывод информации о пользователях;POST /users: создание пользователя; GET /users/123: возвращает данные о пользователе 123; HEAD /users/123: вовзращает общую информацию о пользователе 123; PATCH /users/123 и PUT /users/123: обновляет пользователя 123; DELETE /users/123: удаляет пользователя 123; OPTIONS /users: показывает поддерживаемые методы относительно /users;OPTIONS /users/123: показывает поддерживаемые методы относительно /users/123.Это всё и более детально описано в гайде, правда на английском.
Похоже getBodyParams то, что вам нужно.
https://github.com/yiisoft/yii2/blob/master/framework/web/Request.php#L384
Как вариант можно getRawBody и парсить самому в зависимости от типа.
https://github.com/yiisoft/yii2/blob/master/framework/web/Request.php#L352
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости