我正面临着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 ×1