Yii не обнаруживает действия верблюда

Yii дает мне 404 Error если я объявляю действие вроде этого:

SiteController.php

 public function actionRegisterUser() 

Так я называю это в main.php

  ['label' => 'Register User', 'url' => ['/site/RegisterUser']], 

Я попробовал несколько разных комбинаций. Единственная комбинация, которая будет работать, – это соглашение об именах в обоих местах:

  public function actionRegisteruser 'url' => ['/site/registeruser'] 

Раньше я работал над другим проектом Yii (Yii 1.0), и я мог назвать свои действия в случае с верблюдом и назвать их без проблем. Нужно ли мне включать какие-то настройки ?

Я также пытался играть с rules Контролера, но это ничего не решило.

В некоторых случаях вам нужна ссылка на camelcase. Например, для целей SEO (сохранить входящие ссылки). Вы можете создать правило перезаписи на стороне веб-сервера или добавить встроенное правило для менеджера URL-адресов на стороне приложения. Пример:

 'urlManager' => [ 'rules' => [ '<controller:RegisterUser>/<action:\w+>'=>'register-user/<action>', ], ], 

Также можно написать собственное правило URL . Пример:

 namespace app\components; use yii\web\UrlRuleInterface; use yii\base\Object; class CarUrlRule extends Object implements UrlRuleInterface { public function createUrl($manager, $route, $params) { if ($route === 'car/index') { if (isset($params['manufacturer'], $params['model'])) { return $params['manufacturer'] . '/' . $params['model']; } elseif (isset($params['manufacturer'])) { return $params['manufacturer']; } } return false; // this rule does not apply } public function parseRequest($manager, $request) { $pathInfo = $request->getPathInfo(); if (preg_match('%^(\w+)(/(\w+))?$%', $pathInfo, $matches)) { // check $matches[1] and $matches[3] to see // if they match a manufacturer and a model in the database // If so, set $params['manufacturer'] and/or $params['model'] // and return ['car/index', $params] } return false; // this rule does not apply } } 

И используйте новый класс правил в конфигурации [[yii \ web \ UrlManager :: rules]]:

 [ // ...other rules... [ 'class' => 'app\components\CarUrlRule', // ...configure other properties... ], ] 

Вы должны указать свое действие следующим образом: ['/site/register-user'] . Поскольку документация говорит о Inline Actions :

index становится actionIndex , а hello-world становится actionHelloWorld