1

私は現在、CakePHPのルートを設定しています:CakePHPの可変プレフィックスルーティング

これが私のroutes.phpです:

Router :: connect(
    "/:forum /:controller /:action / *"、
    配列()、
    array( "pass" => array( "forum"))
);

Router :: connect(
    "/:フォーラム"、
    配列(
        "コントローラー"=>"フォーラム"、
        "アクション"=>"インデックス"
    )、
    array( "pass" => array( "forum"))
);

これは完全に機能します。たとえば/example/users/login、UsersController :: loginにルーティングされ、$this->request->params["forum"]が含まれますexample

ただし、見てみるとtmp/logs/debug.log、このルートによって多くのエラーが発生していることがわかります。ルーティングが完全に機能しているため、なぜこれが発生するのか理解できません。

2012-08-22 02:29:09エラー:[MissingControllerException]コントローラークラスExampleControllerが見つかりませんでした。
#0 /var/www/app/webroot/index.php(92):ディスパッチャー->ディスパッチ(Object(CakeRequest)、Object(CakeResponse))
#1{メイン}

これは基本的にExampleControllerを検索しようとしています(アクセスしようとしているため/example/users/login)が、routes.php具体的には、ExampleControllerではなくUsersコントローラーを検索するようにCakePHPに指示します。

この問題を修正する方法はありますか?すべてが明らかに正しく機能しているので、なぜそれが起こるのか理解できません。

4

1 に答える 1

1

/example/users は、UsersController::index() にルーティングするように機能しますか。そうでない場合は、 /:forum/:controller だけのルートが必要なので、現在のルートの前にこれを追加して、エラーが解消されるかどうかを確認してください。

Router::connect(
    "/:forum/:controller",
    array('action' => 'index'),
    array("pass" => array("forum"))
);
于 2012-08-22T17:13:09.660 に答える