0

両方のリクエストを処理する 1 つのルート定義が必要です (可能であれば)。

1 つ目はリストの最初の 10 個の要素を表示し、2 つ目は次の 10 個の要素を含む 2 番目の「ページ」を表示します。

重要: 私も (ビューで) お願いします:

$this->url(array(), 'list');

http://www.example.com/list/1 ではなく、 http ://www.example.com/list URLを作成するには

私がすでに持っているものは次のとおりです。

<list type="Zend_Controller_Router_Route_Regex">
    <route>list(?:/(\d+))?</route>
    <defaults>
        <controller>index</controller>
        <action>list</action>
        <page>1</page>
    </defaults>
    <map>
        <page>1</page>
    </map>
    <reverse>list/%d</reverse>
</list>

両方のリクエストを処理しますが、逆にhttp://www.example.com/list/1 URL を作成します。

1 つのルートでそれが不可能な場合、そのような状況に対処するための最善の方法は何ですか?

4

1 に答える 1

1

ページのデフォルト値として 1 ではなく null を指定する必要がありますが、Zend_Config_Xml はnull特別な値としてサポートしていないため (文字列 'null' として解釈されます)、XML ルートを使用してこれを行うことはできないと思います。

標準のルート クラスを使用して、これを回避できます。

<list type="Zend_Controller_Router_Route">
<route>list/:page</route>
    <defaults>
        <controller>index</controller>
        <action>list</action>
        <page>null</page>
    </defaults>
    <reqs>
        <page>\d+</page>
    </reqs>
</list>

ここでの唯一の癖は、URL にページ変数がない場合、文字列値 'null' をページ パラメータとして取得することです。

ルートにiniファイルを使用するか、PHPで定義する場合、この問題は発生しません。

于 2012-05-06T21:39:24.107 に答える