0

現在、私の ZF プロジェクトでは、次のような URL 構造になっています。

/news/index/news_page/1/blog_page/2

ページネーションを生成するときは、次のように URL ヘルパーを使用します。

<?php echo $this->url(array('blog_page'=>3)); ?>

次のような URL が生成されます。

/news/index/news_page/1/blog_page/3

私がやりたいのは、次のようなカスタム ルートを使用して、より適切な URL を取得することです。

new Zend_Controller_Router_Route(
  'news/:news_page/:blog_page', 
  array('controller' => 'news', 'action' => 'index')
);

ただし、ビューヘルパーでこのルートを使用しようとすると:

<?php echo $this->url(array('blog_page'=>3), 'newsIndex'); ?>

パラメータでnews_pageを指定していないため、エラーがスローされます。

どうすればこれを回避し、これらのパラメーターに「現在の」値を使用するように URL ヘルパーに指示できますか?

4

1 に答える 1

6

URL ヘルパーは、現在のリクエストに存在する場合、既存のパラメーターを使用します。あなたの特定のケースでは、news_pageパラメーターがリクエストオブジェクトに設定されていないようです。ルートのパラメーターのデフォルト値を設定するとnews_page、問題が解決するはずです。

したがって、ルート定義は次のようになります。

new Zend_Controller_Router_Route(
  'news/:news_page/:blog_page', 
  array('controller' => 'news', 'action' => 'index', 'news_page' => 1)
);
于 2009-06-13T00:50:54.487 に答える