0

http://framework.zend.com/manual/en/zend.paginator.usage.htmlのページネーション チュートリアルに従いました。

サイトのページネーションを正常に実装しましたが、ページングの URL 出力に満足できません。ページ 2 の URL の例:

http://www.example.com/posts/index/page/2

私が望むのは、を削除してindex、ただ持っていることですhttp://www.example.com/posts/page/2

アクセス中に (リンクのチュートリアルの my_pagination_control.phtml に)がindex含まれるのはなぜですか?this->url

優雅に見せる方法はありposts/page/2ますか?または単にposts/2

4

2 に答える 2

4

前の回答では不十分だと思います。私の回答を差し上げます。まず、次のbootstrap.phpようなルーターを追加できます。

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
   protected function _initRoutes()
   {
      $Router = Zend_Controller_Front::getInstance()->getRouter();

      $Route = new Zend_Controller_Router_Route(
                      ':controller/*',
                      array(
                          'controller' => 'index',
                          'action' => 'index'
                      )
      );
      $Router->addRoute('paginator1', $Route);

      $Route = new Zend_Controller_Router_Route(
                      ':controller/:page/*',
                      array(
                          'controller' => 'index',
                          'action' => 'index',
                      ),
                      array(
                          'page' => '[0-9]+'
                      )
      );
      $Router->addRoute('paginator2', $Route);
   }

}

次に、ビューで次の単純な行を使用します。

echo $this->url(array('controller' => 'CONTROLLER-NAME', 'page' => 5), 'paginator1', TRUE);
echo $this->url(array('controller' => 'CONTROLLER-NAME', 'page' => 5), 'paginator2', TRUE);

「paginator1」の場合、URL は次のように出力されます。

/CONTROLLER-NAME/page/5

「paginator2」の場合、URL は次のように出力されます。

/CONTROLLER-NAME/5

明らかに、表示CONTROLLER-NAMEされる場所は、作成したコントローラーの名前になります。

于 2011-11-26T15:36:37.637 に答える
0

できること: htaccess ファイルで

    
RewriteEngine オン
    RewriteCond %{REQUEST_FILENAME} -s [または]
    RewriteCond %{REQUEST_FILENAME} -l [または]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [NC,L]
    RewriteRule ^.*$ index.php [NC,L]

参考リンク: http://framework.zend.com/manual/en/zend.controller.router.html

于 2011-11-26T15:11:41.577 に答える