1

Paul Irish の jquery 無限スクロール プラグインを使用できるように、自分のサイトに Zend ページネーションを設定しようとしていますが、ルートに問題があります。現在、オーガナイザー ページに次のルートを設定しています。

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

この順序で正しく一致organizer/index/popularしますが、ページ番号を付けると、フィルターが突然 null になります。順序を切り替えると、organizer/index/popular/2完全に正常に動作しますが、動作しorganizer/index/popularなくなります。ページネーションに必要なルートなので、より具体的なルートしか使用できませんでしたが、URL を入力しようとしているユーザーに対応するため、またはコードのどこかでリンクを変更するのを忘れた場合に備えて、両方を含めたいと思います。Zend を使用して、同じコントローラーに複数のルートを組み込むことはできますか? もしそうなら、私は何を間違っていますか?

4

2 に答える 2

1

ルートに異なる名前を付ける必要があります。両方とも「オーガナイザー」と呼んでいるので、2 番目のものは毎回最初のものを置き換えます。

page 変数のデフォルト値を設定するだけで、1 つのルートでこれを簡単に行うこともできます。

$route = new Zend_Controller_Router_Route(
    'organizer/index/:filter/:page',
    array(
        'controller'=> 'organizer',
        'action'=> 'index',
        'page' => 1
    )
); 
$router->addRoute('organizer', $route);
于 2012-07-19T21:56:48.077 に答える
0

ルーターに追加するすべてのルートには一意の名前を付ける必要があるため、追加する 2 番目のルートには別の名前を付ける必要があります。これは、現在のコードでは route を上書きするためorganizerです。の 2 番目の呼び出しを次のように変更します$router->addRoute()

$router->addRoute('organizer2', $route );
于 2012-07-19T21:56:19.890 に答える