Php ZF2转换器进入控制器

Php ZF2转换器进入控制器,php,zend-framework2,translation,factory,Php,Zend Framework2,Translation,Factory,我试图在我的应用程序中使用转换器,如下面的示例所示,但我遇到了错误 module.config.php 'controllers' => array( 'factories' => array( 'Application\Controller\AjaxController' => function($sm) { $translator = $sm->getServiceLocator()->get

我试图在我的应用程序中使用转换器,如下面的示例所示,但我遇到了错误

module.config.php

'controllers' => array(
        'factories' => array(
            'Application\Controller\AjaxController' => function($sm) {
               $translator = $sm->getServiceLocator()->get('translator');
               $controller = new Application\Controller\AjaxController($translator);
         }
  ),
use Zend\Mvc\Controller\AbstractActionController;
use Zend\I18n\Translator\Translator;
use Zend\View\Model\JsonModel;
use Zend\Session\Container;
use Zend\Debug\Debug;

class AjaxController extends AbstractActionController
{
    protected $translator;

    public function __construct(Translator $translator)
    {
        $this->translator = $translator;
    }
AjaxController.php

'controllers' => array(
        'factories' => array(
            'Application\Controller\AjaxController' => function($sm) {
               $translator = $sm->getServiceLocator()->get('translator');
               $controller = new Application\Controller\AjaxController($translator);
         }
  ),
use Zend\Mvc\Controller\AbstractActionController;
use Zend\I18n\Translator\Translator;
use Zend\View\Model\JsonModel;
use Zend\Session\Container;
use Zend\Debug\Debug;

class AjaxController extends AbstractActionController
{
    protected $translator;

    public function __construct(Translator $translator)
    {
        $this->translator = $translator;
    }
错误输出

Catchable fatal error: Argument 1 passed to Application\Controller\AjaxController::__construct() 
must be an instance of Zend\I18n\Translator\Translator, instance of 
Zend\Mvc\I18n\Translator given, called in 
*****/module/Application/config/module.config.php on line 515 and defined in 
*****/module/Application/src/Application/Controller/AjaxController.php on line 26

从错误消息来看,您似乎使用了错误的转换器。尝试将use子句从
Zend\I18n\Translator\Translator
更改为
Zend\Mvc\I18n\Translator

,结果是:消息:调用了工厂,但未返回实例。@directory Add a
return$controller到您的工厂。