小编use*_*251的帖子

Yii - 子目录中的控制器

我正面临着Yii Framework路由的问题.

我已经创建了控制器,我们称之为TestController.php

然后,我需要把它放到一个名为Make的子目录中,所以我的结构看起来像:

controllers/TestController.php
controllers/Make/TestController.php
Run Code Online (Sandbox Code Playgroud)

对于ocurse,如果我更改它的名称,它可以很好地工作,但有没有办法在控制器目录和子目录中放置一个相同名称的控制器?

编辑
我的URLManager配置如下:

'urlManager'=>array(
            'showScriptName' => false,
            'urlFormat'=>'path',
            'rules'=>array(
                'gii' => 'gii',
                'gii/<controller:\w+>' => 'gii/<controller>',
                'gii/<controller:\w+>/<action:\w+>' =>                                                      'gii/<controller>/<action>',
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
            ),
        ),
Run Code Online (Sandbox Code Playgroud)

我有一个控制器Bookmarks.由于我还有一些与书签相关的其他内容,我需要创建一个目录bookmarks并在其中放置一些控制器Categories.

不能强迫它发挥作用.

编辑2
刚检查清洁应用程序.它似乎是一个Yii bug(?).

编辑3
我已根据建议更改了导入配置:

'import'=>array(
        'application.models.*',
        'application.components.*',
        'application.controllers.bookmarks.*'
    ),
Run Code Online (Sandbox Code Playgroud)

我还创建了正确的路线规则'bookmarks/<controller:\w+>/<action:\w+>'=>'bookmarks/<controller>/<action>',.

我的文件结构现在如下:

BookmarksController.php
bookmarks/CategoriesController.php
Run Code Online (Sandbox Code Playgroud)

这是一个被抛出的异常:

异常'CHttpException',消息'系统无法找到请求的操作"类别".在/home/root/www/yiitesting/framework/web/CController.php:477

yii

8
推荐指数
1
解决办法
1万
查看次数

标签 统计

yii ×1