Здравствуйте. Читаю
Гайд yii2 RESTful Routing, но не получается, что бы работало на практике. Я пытаюсь, в зависимости от verb (HTTP Глагола), отработать соответсвующий экшн device контроллера, который находится в модуле api и наследуется от yii\rest\Controller. Мой urlManager выглядит так
'urlManager' => [
'enablePrettyUrl' => true,
'enableStrictParsing' => false,
'showScriptName' => false,
'rules' => [
[
'class' => 'yii\rest\UrlRule',
'controller' => 'api\device',
],
//'GET api/device' => 'api/device/index',
//'POST api/device' => 'api/device/create',
'<module:[\w-]+>/<controller:[\w-]+>/<action:[\w-]+>/<id:\d+>' => '<module>/<controller>/<action>',
'api/search-dev/<serilal:[\w-]+>' => 'api/search-dev',
'api/dev-models/type/<type_id:\d+>/brand/<brand_id:\d+>' => 'api/dev-models',
],
],
Контроллер выглядит так
namespace app\modules\api\controllers;
use yii\rest\Controller;
class DeviceController extends Controller {
public function actionIndex() {
$resp = new \stdClass();
$resp->action = 'index';
return $resp;
}
public function actionCreate() {
$resp = new \stdClass();
$resp->action = 'create';
return $resp;
}
}
Не зависимо от передаваемого verb (POST или GET) у меня всегда отрабатывает actionIndex device контроллера.
В коде urlManager видно, что я пытался писать правила, типа 'POST api/device' => 'api/device/create'. Безуспешно.
Кто нибудь понимает, как это работает? Можете объяснить «популярно»? Спасибо.