1

在 Yii 中,当访问 时<app-host>/index.php?r=<mycontroller>/<myaction>,框架将开始运行代码在protected/controller/<MyController>Controller.php

我希望该代码位于另一个文件夹中,说protected/anotherFolder,而其他控制器保持原样。怎么做?

问候

4

4 回答 4

6

打开<app-host>/index.php,编辑

//...
require_once($yii);
$app = Yii::createWebApplication($config);
$app->setControllerPath('protected/anotherFolder');
$app->run();
于 2011-11-02T13:02:49.923 回答
5

感谢mdombayii论坛上的这篇文章CWebApplication::controllerMap,我在我们调用的应用程序的加载状态中找到了答案。

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

您可以使用 controllerMap - http://www.yiiframew...ollerMap-detail

于 2011-11-03T04:47:24.893 回答
3

您可以添加到配置文件

'controllerPath' => 'your_new_controller_path',

与视图路径相同

'viewPath' => 'path_to_template_folder',
于 2014-03-05T11:23:43.660 回答
3

如果我得到你,你想将 Web 逻辑拆分为不同的“文件夹”,或者(以更简单的方式)模块。例如,要将所有管理内容放到另一个地方并使用 r=admin/users 来实现,例如

如果您激活了 gii 管理器,请转到 /index.php?r=gii,然后创建一个模块。而已。然后,您可以在 protected/modules/ <module-name>/controllers/ 中创建控制器并使用该路径调用它们。当然,视图也存储在里面

于 2011-11-02T11:15:34.547 回答