Yii доступ к вложенному модулю - PullRequest
0 голосов
/ 18 августа 2011

У меня есть модуль администратора, который я использую для управления пользовательским интерфейсом и т. Д. *

Я бы хотел, чтобы расширение «Права» было вложено в этот модуль администратора, и чтобы я мог получить к нему доступ с помощью mysite.com/index.php?r=admin/rights

Очевидно, мне нужно объявить дочерние модули в родительском модуле, поэтому в разделе AdminModule init я установил:

$this->setModules(array(
    'rights'=>array(
        'install'=>true, // rights - Enables the installer
        'baseUrl'=>'/admin/rights',
        'debug'=>true,
    ),
));

Я также пытался импортировать из AdminModule init: (не знаю, на этом)

$this->setImport(array(
    'admin.models.*',
    'admin.components.*',
    'admin.modules.rights.*',
    'admin.modules.rights.components.*',
));

Также я попытался объявить модуль в конфигурации main.php:

'admin'=>array(
    'modules'=>array(
        'rights'=>array(
            'install'=>true, // rights - Enables the installer
            'baseUrl'=>'/admin/rights',
            'debug'=>true,
         ),
     ),
),

И даже импортируя его туда:

'import'=>array(
    'application.models.*',
    'application.components.*',
    'application.modules.admin.*',
    'application.modules.admin.modules.rights.*', // rights
    'application.modules.admin.modules.rights.components.*', // rights
),

В любом случае, что бы я ни пытался до сих пор, я не могу получить доступ к модулю прав. Это дает мне Unable to resolve the request "admin/rights". при попытке добраться до админа / права.

Расширение отлично работает как не вложенный модуль на ?r=rights. Есть идеи? Я не нашел много примеров реального кода при работе с вложенными модулями.

Ответы [ 2 ]

0 голосов
/ 07 февраля 2016

Полагаю, у вас есть несколько rights модулей.Чтобы использовать определенный (из «более глубокой» иерархии) вы должны объявить его класс.Примерно так:

'admin'=>array(
    'modules'=>array(
        'rights'=>array(
            'class' => 'application.modules.admin.modules.rights.RightsModule'
         ),
     ),
),
0 голосов
/ 19 августа 2011

Может быть проблема в отсутствии маршрута?

Попробуйте добавить следующее:

<module:\w+>/<controller:\w+>/<action:\w+>'=>'<module>/<controller>/<action>
...