Я только что использовал Gii для создания нового модуля под названием gig. После генерации кода модуля с помощью Gii я обновил файл config / main.php, добавив модуль 'gig' следующим образом:
'import'=>array(
'application.models.*',
'application.components.*',
'application.modules.*',
),
'modules'=>array(
// uncomment the following to enable the Gii tool
'gii'=>array(
'class'=>'system.gii.GiiModule',
'password'=>'secretpassword',
),
'gig',
),
Теперь, когда я пытаюсь получить доступ к автоматически сгенерированному коду модуля Yii в моем браузере следующим образом:
http://localhost/gig/default/index/
Я получаю следующую ошибку:
DefaultController не может найти запрошенное представление "index".
Чтобы исправить эту проблему, я изменил код рендеринга в модуле DefaultController.php из этого:
$this->render('index');
к этому:
$this->render('gig.views.default.index');
Это изменение решило проблему, но мне интересно, пропустил ли я что-то или Gii генерирует код с ошибками для модулей? Кто-нибудь сталкивался с этой проблемой раньше? Правильно ли мое решение?
Теперь, когда контроллер может найти представление, я перезагрузил страницу, только чтобы было показано это сообщение об ошибке:
Попытка получить свойство необъекта
Оказывается, что существует проблема со следующим кодом в файле представления index.php:
$this->breadcrumbs=array(
$this->module->id,
);
Я не уверен, почему это происходит. Я попытался изменить приведенный выше код на следующее:
$this->breadcrumbs=array(
Yii::app()->controller->module->id,
);
но это все равно выдает мне сообщение об ошибке "Попытка получить свойство необъекта".
Есть идеи, что может быть не так? Я что-то упускаю при настройке кода модуля? Я использую Yii 1.1.7
Спасибо!