Передача параметров в сухарях - PullRequest
3 голосов
/ 01 декабря 2009

Я все еще относительный новичок в Zend Framework, поэтому, пожалуйста, прости меня, если это глупый вопрос!

Я использую помощник вида хлебных крошек в основном макете моего приложения, чтобы обеспечить обычную функциональность хлебных крошек. Однако мне действительно нужны хлебные крошки, чтобы содержать параметры, переданные действиям, на которые пользователь нажал ...

Так что, если вы переходите от "/ controller / parent / id / 1" к "/ controller / child / id / 2", хлебные крошки на дочерней странице должны ссылаться на "/ controller / parent / id / 1" а не просто "/ контроллер / родитель /"

Какие у меня варианты? Нужно ли мне строить дерево Zend_Navigation со всем содержимым моей базы данных, чтобы учитывались все возможные идентификаторы для каждого действия? Или я могу написать свой собственный помощник, чтобы добавить дополнительные параметры к объекту Zend_Navigation_Page при визуализации хлебных крошек?

Первый вариант - путь наименьшего сопротивления, но он кажется очень неэффективным! Хотя, я полагаю, это можно сделать с отложенной загрузкой, чтобы сократить использование памяти.

Спасибо за любую помощь!

Tom

1 Ответ

2 голосов
/ 03 декабря 2009

Я думаю, что ответом будет использование reset_params внутри вашего navigation.xml

Внутри вашей страницы вам нужно установить 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>

...