0

私のプロジェクトでは、「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.*',
...
)

URL マネージャー:

'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

もちろん、モジュールについて読みましたが、この機能のためにモジュールを実装したくないので、それを外部エンティティとして保持したいと思います。

では、プロジェクト全体でこの構造を実現するにはどうすればよいですか?

4

2 に答える 2

0

最後の URL 書き換えルールは、配列にラップしないでください。

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

そしてそうではない

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

CustomerControllerまた、メインのコントローラ フォルダに がないことを確認する必要があります。

于 2013-10-02T07:50:29.030 に答える