对于我的项目,我需要通过在“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
当然我读到了关于模块的内容,但我不想为此功能实现模块,我希望将其保留为外部实体。
那么我怎样才能在整个项目中实现这个结构呢?
答案 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
。