0

是否可以将页面映射到特定的操作 + 参数组合,如下所示:

                    <myprofile>
                        <label>My Profile</label>
                        <controller>user</controller>
                        <action>profile</action>
                        <visible>1</visible>
                    </myprofile>                    
                    <othersprofile>
                        <label>User Profile</label>
                        <controller>usuario</controller>
                        <action>perfil</action>
                        <visible>0</visible>
                        <reset_params>0</reset_params>
                        <params>
                            <id>*</id>
                        </params>
                    </othersprofile>

我希望如果 uri 包含任何 id param ,那么应该是活动的。(我把 * 作为通配符,但我不知道正确的方法)

/user/profile = 应将 myprofile 设置为活动 /user/profile/id/5 = 应将 othersprofile 设置为活动

任何帮助表示赞赏。

谢谢

4

1 回答 1

0

通过将页面明确设置为在您的操作中处于活动状态,有一种解决方法。

你可以这样做:

public function perfilAction(){
    $this->view->navigation()->findOneBy('controller','usario')->setActive();

    // rest of your action code...

从 ZF 1.11.8 开始,您应该能够在页面参数中添加路由名称,并且它将对匹配此路由的任何内容都有效。(之前已经添加了“路由”功能,但是isActive检测存在一些问题,请参见http://framework.zend.com/issues/browse/ZF-11359

于 2011-09-19T16:02:43.470 回答