2011-08-13 18 views
0

コントローラ、ビュー、またはモデル用のサブフォルダを使ってCakePHPを動作させることは実際には機能していません。私が読んだところでは "プラグイン"を使う必要があります。私がしようとする私のURLを設定するとCakePHP 2.0 Plugin URL

/app/Plugin/Manager/ 
    /Controller 
     CandyController.php 
    /Models 
    /View 
     /Candy 
      viewCandy.ctp 
    ManagerAppController.php 
    ManagerAppModel.php 

http://localhost/Manager/Candy/viewCandy/123今、私は、次のフォルダ構造を有しています。 「ManagerControllerが存在しません」というエラーメッセージが表示されます。 CakePHPがManager Pluginフォルダに表示されるべきではないのはなぜですか?ここで

+1

が答えです。 /app/config/routes.phpを編集し、次の行を追加します。CakePlugin :: load(array( 'Manager')); – MikeMurko

+0

ええ、CakePHP 2.0はプラグインを自動的にロードせず、それらを選択的にロードできることにも気付きました。これを自分の質問に答えて受け入れ、それを受け入れるべきです - あなたは「自己学習者」バッジを取得することすらできます。 – deizel

+1

ありがとうございました。完了しました。 – MikeMurko

答えて

5

2.0がリリースされたので、ドキュメントはもう少し詳しく解説されています。これは、Plugin section of the cookbookに記載されています。

彼らは代わりにroutes.phpのbootstrap.phpのでこれを置くことをお勧め:興味深いことに、ここ

CakePlugin::loadAll(); // Loads all plugins at once 
CakePlugin::load('ContactManager'); //Loads a single plugin 
+0

Switched answer。最新情報をお寄せいただきありがとうございます – MikeMurko

4

は、ソリューションです:

は/app/config/routes.phpのに移動し、ラインCakePlugin::routes();後行CakePlugin::load(array('YourPluginName'));を追加します。私の場合は40行目でした。

基本的にCakePHP 2.0はプラグインを自動的にロードしません。私はそれがうまくやっていると思うが、実際にはこれに関するドキュメントはない。

+1

プラグインは、Config/routes.phpではなく、Config/bootstrap.phpファイルにロードする必要があります。 – LeandroCR