Php 如何从zend navigation中删除页面?

Php 如何从zend navigation中删除页面?,php,zend-framework,zend-framework2,zend-navigation,Php,Zend Framework,Zend Framework2,Zend Navigation,我试图从zend navigation中删除一个页面,但它似乎没有被删除 if (!$task->getMilestone()) { $navigation = $this->getServiceLocator()->get('Navigation'); $page = $navigation->findOneBy('id', 'milestone_edit_task'); $navigation->removePage($page);

我试图从zend navigation中删除一个页面,但它似乎没有被删除

if (!$task->getMilestone()) {
    $navigation = $this->getServiceLocator()->get('Navigation');
    $page = $navigation->findOneBy('id', 'milestone_edit_task');
    $navigation->removePage($page);
    $page = $navigation->findOneBy('id', 'milestone_edit_task');
    die(var_dump($page->get('id')));
}
findOneBy()似乎正确地找到了页面。但是removePage($page)不会删除页面。我正在做第二个findOneBy()来证明页面仍然存在

如何删除该页

(此代码在控制器操作中,是否太晚?)

根据要求,这里是我的容器配置

// Navigation
'navigation' => array(
    'default' => array(

        // Projects
        array(
            'label' => '<i class="fa fa-cubes"></i> Projects',
            'route' => 'project/default',
            'controller' => 'project',
            'pages' => array(
                array(
                    'label' => 'Project Detail',
                    'controller' => 'project',
                    'action' => 'detail',
                    'pages' => array(
                        array(
                            'label' => 'Add milestone',
                            'controller' => 'milestone',
                            'action' => 'add'
                        ),
                        array(
                            'label' => 'Edit milestone',
                            'controller' => 'milestone',
                            'action' => 'edit'
                        ),
                        array(
                            'label' => 'Delete milestone',
                            'controller' => 'milestone',
                            'action' => 'delete'
                        ),
                        array(
                            'label' => 'Add task',
                            'controller' => 'project',
                            'action' => 'task'
                        ),
                        array(
                            'label' => 'Milestone Detail',
                            'controller' => 'milestone',
                            'action' => 'detail',
                            'pages' => array(
                                array(
                                    'label' => 'Add Task',
                                    'controller' => 'task',
                                    'action' => 'add'
                                ),
                                array(
                                    'id' => 'milestone_edit_task',   // <---
                                    'label' => 'Edit Task',
                                    'controller' => 'task',
                                    'action' => 'edit'
                                ),
                                array(
                                    'label' => 'Delete Task',
                                    'controller' => 'task',
                                    'action' => 'delete'
                                ),
                                array(
                                    'label' => 'Add comment',
                                    'controller' => 'milestone',
                                    'action' => 'comment'
                                ),
                                array(
                                    'label' => 'Task Detail',
                                    'controller' => 'task',
                                    'action' => 'detail',
                                ),
                            ),
                        ),
                        array(
                            'label' => 'Add comment',
                            'controller' => 'project',
                            'action' => 'comment'
                        ),
                    ),   
                ),
                array(
                    'label' => 'Edit comment',
                    'controller' => 'comment',
                    'action' => 'edit'
                ),
                array(
                    'label' => 'Delete comment',
                    'controller' => 'comment',
                    'action' => 'delete'
                ),
            ),
        ),
    ),
),
//导航
“导航”=>数组(
'默认'=>数组(
//计划
排列(
“标签”=>“项目”,
'路由'=>'项目/默认',
“控制器”=>“项目”,
“页面”=>数组(
排列(
“标签”=>“项目详细信息”,
“控制器”=>“项目”,
“操作”=>“详细信息”,
“页面”=>数组(
排列(
“标签”=>“添加里程碑”,
“控制器”=>“里程碑”,
“操作”=>“添加”
),
排列(
“标签”=>“编辑里程碑”,
“控制器”=>“里程碑”,
“操作”=>“编辑”
),
排列(
“标签”=>“删除里程碑”,
“控制器”=>“里程碑”,
'操作'=>'删除'
),
排列(
“标签”=>“添加任务”,
“控制器”=>“项目”,
“操作”=>“任务”
),
排列(
“标签”=>“里程碑详细信息”,
“控制器”=>“里程碑”,
“操作”=>“详细信息”,
“页面”=>数组(
排列(
“标签”=>“添加任务”,
“控制器”=>“任务”,
“操作”=>“添加”
),
排列(
'id'=>'milestone\u edit\u task',//'edit task',
“控制器”=>“任务”,
“操作”=>“编辑”
),
排列(
“标签”=>“删除任务”,
“控制器”=>“任务”,
'操作'=>'删除'
),
排列(
“标签”=>“添加注释”,
“控制器”=>“里程碑”,
'操作'=>'注释'
),
排列(
“标签”=>“任务详细信息”,
“控制器”=>“任务”,
“操作”=>“详细信息”,
),
),
),
排列(
“标签”=>“添加注释”,
“控制器”=>“项目”,
'操作'=>'注释'
),
),   
),
排列(
“标签”=>“编辑注释”,
“控制器”=>“注释”,
“操作”=>“编辑”
),
排列(
“标签”=>“删除注释”,
“控制器”=>“注释”,
'操作'=>'删除'
),
),
),
),
),

查看源代码,您似乎只能删除根节点。您如何确认您的信念“…findOneBy()似乎能正确找到页面”?请向我们展示您的容器(或足够的容器来复制您的问题),以便我们能够正确地测试您的代码和假设。Ref再次查看了源代码。我想答案是$导航->删除页面($page,true);文档中没有提到任何关于递归删除的内容。我应该在Github上提出一个问题。查看源代码,您似乎只能删除根节点。您如何确认您的信念“…findOneBy()似乎可以正确找到页面”?请向我们展示您的容器(或足够的容器来复制您的问题),以便我们能够正确地测试您的代码和假设。Ref再次查看了源代码。我想答案是$导航->删除页面($page,true);文档中没有提到任何关于递归删除的内容。我应该在Github上提出一个问题。