2014-11-28 2 views
3

Это касается создания модуля внутри папки backend. Например, я создал имя модуля как «api». А также с успехом создал контроллер для этих модулей.urlmanager с модулями, не работающими в yii2.0

вот мой urlmanager код:

'urlManager' => [ 
      'class' => 'yii\web\UrlManager', 
      'enablePrettyUrl' => true, 
      'rules' => [ 

       '<module:\w+>/<controller:\w+>/<action:\w+>'=>'<module>/<controller>/<action>', 
       '<module:\w+><controller:\w+>/<action:update|delete>/<id:\d+>' => '<module>/<controller>/<action>', 

      ], 
     ] 

, когда я получить доступ к URL относительно модуля, как «апи», контроллер, как «страна» и действий, как «создать»

http://local2host.com/bootstrap/backend/web/index.php/api/country/create он показывает 404 Не найдена ошибка

Где я иду не так?

ответ

2

Второе правило никогда не будет работать. Также вам не нужно определять правила, и нормальные будут работать. Таким образом, это

'urlManager' => [ 
    'class' => 'yii\web\UrlManager', 
    'enablePrettyUrl' => true, 
    'showScriptName' => false, 
], 

сделает эту ссылку /website.com/core/contact/index очень хорошо.

Но я не уверен, почему ваш маршрут не поймал первое правило ... странно. Должно.

+0

Правильный ответ на этот вопрос. также помог мне. –

1

Лучше поздно, чем никогда.

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

'modules' => [ 
...... 
    'modulename' => [ 
     'class' => 'app\modules\modulename\Module', 
    ], 
...... 
], 
+0

Это не дает ответа на вопрос. Он спросил о «urlManagement» для модулей Yii2. Ваш ответ показывает, как включать модули через конфигурацию Yii2. – lin

+0

Это часть ответа, но важная в этом, так как ваши правила модуля не будут работать, если вы не укажете выше, поэтому @Mihai P. ответ выше не является полным без этого. – ChrisB

Смежные вопросы