Zend framework2 如何在ZF2中检查控制器和动作是否存在

Zend framework2 如何在ZF2中检查控制器和动作是否存在,zend-framework2,Zend Framework2,如果控制器和操作存在或不存在,如何在控制器中签入ZF2? 我的控制器必须检查指定的控制器和操作是否存在,他可以使用这些控制器和操作创建小部件。 谢谢。使用前端控制器的isDispatchable-方法,将Zend\u controller\u Request\u抽象实例传递给它 if( $front->getDispatcher()->isDispatchable($testRequest) ) { //Do somthing } 可通过控制器的服务定位器访问控制器

如果控制器和操作存在或不存在,如何在控制器中签入ZF2? 我的控制器必须检查指定的控制器和操作是否存在,他可以使用这些控制器和操作创建小部件。
谢谢。

使用前端控制器的isDispatchable-方法,将Zend\u controller\u Request\u抽象实例传递给它

if( $front->getDispatcher()->isDispatchable($testRequest) )  
{  
    //Do somthing
}

可通过控制器的服务定位器访问控制器。如果实例可用,可以检查控制器加载程序。如果是,则创建该实例并检查该操作是否为有效方法

代码:

// Inside your controller

protected function validateDispatchable($controller, $action)
{
    $loader = $this->getServiceLocator()->get('ControllerLoader');
    if (!$loader->has($controller)) {
        return false; // No controller
    }

    $obj    = $loader->get($controller);
    $method = $obj::getMethodFromAction($action);

    if (!method_exists($obj, $method)) {
        return false; // No action
    }

    return true;
}

您指的是ZF1,问题是关于ZF2的。您没有仔细阅读问题。这两个版本将不起作用。不过还是要谢谢你。如果你已经“在”控制器中了,那么检查它是否是一个有效的控制器是没有意义的,对吗?你能详细说明一下这个用例吗?使用示例:使用这个配置,我必须添加模块(widgets模块)谢谢,这就是我需要的。