子控制器不在Yii Framework中工作

时间:2013-10-01 04:24:07

标签: php yii yii-modules

对于我的项目,我需要通过在“Controllers”文件夹中添加子控件来自定义我的代码。 例如:

控制器中,我添加了

controllers -> customer -> CustomerDetailsController.php

型号:

models -> customer -> Customer.php

和观点:

views -> customer -> customerdetails -> index.php, admin.php, _form.php .... etc

以下是我的config/main.php文件:

'import'=>
array(
...
/* Loaded CustomerController model, view and controller */
                'application.controllers.customer.*',
                'application.controllers.models.customer.*',
...
)

网址管理员:

'urlManager' => array(
                    'urlFormat' => 'path',
                    'showScriptName' => false,
                    'urlSuffix' => '/',
                    //'rules' => $params['url.rules'],
                    //Modified "rules" attribute for hiding index.php and added .htaccess in WebRoot
                    'rules' => array(
                        '<controller:\w+>/<id:\d+>' => '<controller>/view',
                        '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
                        '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
                        array('customer/<controller:\w+>/<action:\w+>' => 'customer/<controller>/<action>'),
                    ),
                ),

它不适合我。

错误:

Fatal error: Class 'CustomerDetails' not found

当然我读到了关于模块的内容,但我不想为此功能实现模块,我希望将其保留为外部实体。

那么我怎样才能在整个项目中实现这个结构呢?

2 个答案:

答案 0 :(得分:0)

这是对的吗?

'application.controllers.models.customer.*',

您确定这是您的类文件的路径吗?它可能是这样的:

application.models.Customer

右?我认为类名必须是大写才能在别名中使用。 (文件本身可能是Customer.php而没有customer.php)。

答案 1 :(得分:0)

最后一个url重写规则不应该包含在数组中,即

'customer/<controller:\w+>/<action:\w+>' => 'customer/<controller>/<action>',

而不是

array('customer/<controller:\w+>/<action:\w+>' => 'customer/<controller>/<action>'),

此外,您应该确保主控制器文件夹中没有CustomerController