Как использовать контроллер Yii, расположенный в папке, а не по умолчанию `protected / controller`? - PullRequest
1 голос
/ 02 ноября 2011

В Yii при доступе к <app-host>/index.php?r=<mycontroller>/<myaction> платформа начнет запускать код в protected/controller/<MyController>Controller.php

Я хочу, чтобы этот код находился в другой папке, говорит protected/anotherFolder, тогда как другие контроллерыоставаться как есть.Как это сделать?

С уважением

Ответы [ 4 ]

6 голосов
/ 02 ноября 2011

Открыть до <app-host>/index.php, отредактировать до

//...
require_once($yii);
$app = Yii::createWebApplication($config);
$app->setControllerPath('protected/anotherFolder');
$app->run();
5 голосов
/ 03 ноября 2011

Благодаря mdomba на форуме yii в этом сообщении я нашел ответ, используя CWebApplication::controllerMap - в состоянии загрузки приложения, которое мы называем

Yii::app()->controllerMap['yourControllerName']='path.alias.to.your.controller.file.without.dotPHP';

Вы можете использовать controllerMap - http://www.yiiframew. .. ollerMap-detail

3 голосов
/ 05 марта 2014

Вы можете добавить в файл конфигурации

'controllerPath' => 'your_new_controller_path',

То же самое с путем просмотра

'viewPath' => 'path_to_template_folder',
3 голосов
/ 02 ноября 2011

Если я вас понял, вы хотите разделить веб-логику на разные «папки» или (более простым способом) модули. Например, чтобы перенести всю административную работу в другое место и перейти к ней с помощью r = admin / users, например

Если у вас активирован менеджер gii, перейдите в /index.php?r=gii и создайте модуль. Вот и все. Затем вы можете создавать контроллеры внутри защищенных / modules / <module-name> / controllers / и вызывать их по этому пути. Конечно, представления также хранятся внутри этого

...