1

私は前の従業員によって作成された Cakephp アプリケーションを持っています。その構造は次の画像からわかるように定義されています、それに応じてモデル化し、表示します。ビュー フォルダーには、特定のコントローラーとモデルに一致するさまざまなビューを格納するフォルダーがあります。また、フォルダーを 1 つ作成し、new_foo という名前を付けました。

app_controller.php が表示されましたか? コントローラを呼び出すメニュー (ナビゲーション バー) を初期化するために使用できるすべての情報を含むファイル。

メニューは配列として定義されます。

menu=array(
    array(
        'label' => __("Menu Item", true),
        'controller' => 'MenuController',
        'action' => 'MenuAction'
                        ),
    array(
        'label' => __("Another item", true),
        'controller' => 'AnotherMenusController',
        'action' => 'AnotherAction'
        ));

また、そのような要素を 1 つ定義し、次のような新しいコントローラー クラスを作成しました。

AnotherMenusController.php // 複数形に注意してください

class  AnotherMenusController extends AppController
{
    $this->loadModel('AnotherMenu'); // Please note the plural
    function AnotherAction()
    {
        $this->AnotherMenu->modelFunc();    
    }
}

そして、これに似たモデルクラスも作成しました

class AnotherMenu extends AppModel
{
    function modelFunc()
    {
        print_r("Oh that is it ?");
    }   
}

ただし、ローカルホストでアプリケーションを実行しようとすると、常に次のようなエラーが報告されます

見つかりませんエラー: 要求されたアドレス '/anothermenus/anotheraction' がこのサーバーで見つかりませんでした。

メニュー項目にすでにリンクを作成できましたが、それは無関係のようです。少しでも気分が良くなるように、これに光を当てることができる誰かがいればいいのにと切に願っています. あなたが提供した助けに感謝します。

また、ご心配いただき誠にありがとうございます。

画像は以下のリンクにあります

http://imgur.com/RyV3A

現在の問題は、サーバーがコントローラー機能を認識しないことです。何を変更すればよいですか?

この特定の問題でうまくいくために何かを登録するのを逃したはずです。

4

1 に答える 1

1

私の最初の推測では、あなたの問題は、ローカル Web サーバーが .htaccess を尊重していないことです。メニューがリダイレクトしているルートは「/anothermenus/anotheraction」ですが、Web サーバーはそのようなパスが存在しないと報告しています。アプリが実稼働用に構成されていて、ローカル Web サーバーがまったく同じように構成されていない可能性があります。

他のメニューで何が起こるかを確認し、それらがリンクするパスが追加したメニューのパスと似ているかどうかを確認します。また、CakePHP と Web サーバーのログを確認して、どちらがエラーを返しているかを確認します。Web サーバーの場合は、Web サーバーの構成 (または .htaccess ファイル) を確認する必要があります。それが CakePHP のものである場合は、コードを調べ続ける必要があります (この回答は無視してください)。

于 2012-05-16T04:43:44.660 に答える