从ZF2中的控制器调用另一个控制器操作的最佳实践

itr*_*tro 4 php zend-framework2

调用另一个控制器的动作的最佳方法是什么?

我在想不同的选择:

  1. 使用转发插件
  2. 将第二个控制器设置为第一个控制器中的依赖项

我认为第一个选项可行,但我想知道第二个选项是否有意义.在这种情况下,

  1. 如何获得控制器依赖?

我试图使用服务管理器来获取它,但它不存在.我已经尝试为控制器创建一个Factory,并从Controller Manager获取另一个控制器,当您实现FactoryInterface时,它将作为参数传递给createService方法.但它说没有控制器在那里.存在与控制器不同的定位器,而不是与服务定位器相同的定位器?

  1. 具有依赖性并将被调用的控制器必须扩展或实现任何特定的类或接口?

Rit*_*esh 5

要转发参数:

$this->forward()->dispatch('Namespace\Controller', array(
            'action' => 'ActionName',
            'params' => array(
                'id' => $id
            )
        ));
Run Code Online (Sandbox Code Playgroud)