0

Zendサイトのブートストラップにいくつかのルートを設定しました。そのうちの1つを次に示します。

$route = new Zend_Controller_Router_Route('organizer/haveItem',
                                                array('controller'=> 'organizer',
                                                'action'=> 'haveItem')); 
    $router->addRoute('have', $route);

もう1つの新しいものは基本的に同じで、「have」を「want」に置き換えます。これを行ったのは、Ajax呼び出しがインデックスアクションに分類されるのではなく、これらのルートによってキャッチされるようにするためです。その時点で、そこから正しいアクションにリダイレクトしようとすると、無限にスタックするため、基本的に永久に失われます。ループ。

私の問題は、これらのルートを使用すると、500エラーが発生することです。これは、これらのルートがAjax呼び出しからパラメーター化された変数を切り取っているか、パラメーター化された変数が原因で呼び出しがこれらのルートと一致せず、インデックスアクションに分類されているためだと思います。それは実際に500エラーを引き起こしますか?もしそうなら、Ajax投稿変数を説明するためにこれらのルートをどのように調整できますか?

4

1 に答える 1

0

Zend のルーターは、完全に問題なくルートを介して ajax 変数を渡すことができます。問題は、同じコントローラーへの複数のルートがあることでした。have ルートと want ルートのすぐ下に、次のルートがありました。

$route = new Zend_Controller_Router_Route('organizer/:filter/:page',
                                                array('controller'=> 'organizer',
                                                'action'=> 'index',
                                                'page'=>1)); 
    $router->addRoute('organizer searches', $route);

これは私の持っている電話と欲しい電話をキャッチしていました。これをリストの一番上に移動すると、完全に正常に機能しました。Zend のドキュメントhttp://framework.zend.com/manual/en/zend.controller.router.htmlに記載されているように、Zend ルーターはボトムアップでルートを評価すると思います。リストの一番下。たとえば、オーガナイザー セグメントの後にキーワードを含むすべてのルートは、:filter最初にキャッチされるように、どのルートよりも下にある必要があります。

于 2012-08-13T17:55:08.420 に答える