3

私はまだZendFrameworkを比較的初めて使用しているので、これがばかげた質問である場合はご容赦ください。

アプリケーションのメインレイアウトでブレッドクラムビューヘルパーを使用して、通常のブレッドクラム機能を提供しています。ただし、ユーザーがクリックしたアクションに渡されるパラメーターを含めるためのブレッドクラムが本当に必要です...

したがって、「/ controller / parent / id/1」から「/controller/ child / id / 2」をクリックすると、子ページのブレッドクラムは、単に「/ controller / parent / id/1」にリンクする必要があります。 「/controller/ parent/」

私のオプションは何ですか?データベースのコンテンツ全体を使用してZend_Navigationツリーを構築し、すべてのアクションで可能なすべてのIDに対応できるようにする必要がありますか?または、ブレッドクラムがレンダリングされるときにZend_Navigation_Pageオブジェクトに追加のパラメーターを追加する独自のヘルパーを作成できますか?

最初のオプションは抵抗が最も少ないパスのようですが、非常に非効率的です。ただし、これは遅延読み込みを使用してメモリ使用量を削減することで実行できると思います。

助けてくれてありがとう!

トム

4

1 に答える 1

2

答えは、navigation.xml内でreset_paramsを使用することだと思います

ページ内で、reset_params=0を次のように設定する必要があります。

<reset_params>0</reset_params>

参照: http: //framework.zend.com/manual/en/zend.navigation.pages.html

たとえば、このアプリケーションでは、次のようなものを使用します。

<config>
<nav>
    <fsms>
        <label>Home</label>
        <module>default</module>
        <controller>index</controller>
        <action>index</action>
        <pages>
            <!-- Cases -->
            <page_case>
                <label>Case</label>
                <module>case</module>
                <controller>details</controller>
                <action>index</action>
                <reset_params>0</reset_params>
                <pages>
                    <!-- Case Creation -->
                    <page_case_create>
                        <label>Creation</label>
                        <module>case</module>
                        <controller>create</controller>
                        <action>index</action>
                    </page_case_create>
                </pages>
            </page_case>
        </pages>
    </fsms>
</nav>

于 2009-12-03T01:06:38.767 に答える