如何使用位于文件夹中的 Yii 控制器而不是默认的“protected/controller”?

发布于 2024-12-13 08:44:47 字数 304 浏览 1 评论 0原文

在 Yii 中,当访问 /index.php?r=/ 时,框架将开始运行 protected/controller 中的代码/Controller.php

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

问候

In Yii, when access to <app-host>/index.php?r=<mycontroller>/<myaction>, the framework will start to run code in protected/controller/<MyController>Controller.php

I want to that code to be located in another folder, says protected/anotherFolder, while other controllers remain as-is. How to do that?

Regards

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

假面具 2024-12-20 08:44:47

打开 /index.php,编辑为

//...
require_once($yii);
$app = Yii::createWebApplication($config);
$app->setControllerPath('protected/anotherFolder');
$app->run();

Open up <app-host>/index.php, edit to

//...
require_once($yii);
$app = Yii::createWebApplication($config);
$app->setControllerPath('protected/anotherFolder');
$app->run();
遥远的绿洲 2024-12-20 08:44:47

感谢 yii 论坛上的 mdomba post,我使用 CWebApplication::controllerMap 找到了答案 - 在加载中我们调用的应用程序的状态

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

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

Thanks to mdomba on yii forum at this post, I found the answer using CWebApplication::controllerMap - in the loading state of the application we call

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

You can use controllerMap - http://www.yiiframew...ollerMap-detail

别把无礼当个性 2024-12-20 08:44:47

如果我明白你的意思,你想将 Web 逻辑分成不同的“文件夹”,或者(以更 yii-ly 的方式)模块。例如,要将所有管理内容放到另一个地方并使用 r=admin/users 进行操作,例如,

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

If I got you, you want to split the web logic into different "folders", or (in a more yii-ly way) modules. For instance, to have all the administrating stuff into another place and get to this using r=admin/users, for instance

If you have your gii manager activated, go to /index.php?r=gii, and create a module. That's it. You can then create controllers inside protected/modules/<module-name>/controllers/ and call them using that path. Of course, views are also stored inside that

韵柒 2024-12-20 08:44:47

您可以添加到配置文件

'controllerPath' => 'your_new_controller_path',

与视图路径相同

'viewPath' => 'path_to_template_folder',

You can add to config file

'controllerPath' => 'your_new_controller_path',

The same with view path

'viewPath' => 'path_to_template_folder',
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文