Zend Navigation(容器)-removePage() 不是递归的
Zend_Navigation
扩展了 Zend_Navigation_Container
。 findOneBy()
、findAllBy()
和 findBy()
函数都以递归方式搜索页面,但 removePage()
代码> 没有。这意味着 $navigation->removePage($navigation->findOneBy('id', 'page_10'));
仅当 page_10
是根目录时才有效 -级别导航节点。有其他人遇到过这种情况并找到解决方法吗?
我找到了自己的解决方案,并接受其中之一作为我的实施方式。如果其他人的解决方案比我的更好,我会选择它。
Zend_Navigation
extends Zend_Navigation_Container
. The findOneBy()
, findAllBy()
, and findBy()
functions all search for pages recursively, but removePage()
does not. This means that $navigation->removePage($navigation->findOneBy('id', 'page_10'));
will work ONLY if page_10
is a root-level navigation node. Has anyone else encountered this and found a work-around?
I have found my own solutions and accepted one of them as how I have implemented it. I will select a solution from someone else if it's better than mine.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
扩展
Zend_Navigation
和Zend_Navigation_Container
以递归方式删除页面。创建扩展
Zend_Navigation_Container
的My_Navigation_Container
:制作扩展
My_Navigation_Container
的Zend_Navigation
的副本:Extend
Zend_Navigation
andZend_Navigation_Container
to recursively remove pages.Create
My_Navigation_Container
that extendsZend_Navigation_Container
:Make a copy of
Zend_Navigation
that extendsMy_Navigation_Container
:找到父级,然后删除子级。这需要了解父母的属性:
Find the parent, and then remove the child. This requires knowledge of the parent's attributes: