cronjob模块中未提供ZF2转换器

时间:2016-06-16 09:57:57

标签: php zend-framework routing translation

在我的cronjob模块中,我正在运行一些带有模板的电子邮件脚本。现在我想在电子邮件模板中添加一些网址,例如取消订阅,但是带有翻译slugs的路线似乎存在问题。

例如,我有这些路线,我想将它们都包含在我的电子邮件模板中。

      'newest' => array(
          'type' => 'Zend\Mvc\Router\Http\Segment',
             'options' => array(
                'route' => '{newest}.html',
                     'defaults'   => array(
                     'controller' => 'Application\Controller\IndexController',
                     'action'     => 'newest',
                ),
            ),
        ),

        'contact' => array(
             'type' => 'Zend\Mvc\Router\Http\Segment',
                'options' => array(
                  'route' => 'contact.html',
                     'defaults'   => array(
                     'controller' => 'Application\Controller\IndexController',
                     'action'     => 'contact',
                 ),
             ),
         ),

联系路线没问题,工作正常!但是当我试图包含最新的路线时,它出错了,一​​个捕获错误检查给了我回复信息:

string(22) "No translator provided"

嗯,我理解这一点。似乎没有提供翻译,因为它基于我的应用程序模块的Module.php中的语言环境。

我会说,我应该能够强制这个译者使用翻译器吗?比如,在从命令行触发路由时在我的参数中使用参数。

下面的代码是我当前的代码,我想我需要以某种方式设置翻译器吗?

$request = $this->getRequest();
        if (!$request instanceof ConsoleRequest)
            throw new \RuntimeException('Only access via console!');

        $country                       = $request->getParam('country');
        $sm                            = $this->serviceLocator;
        $http                          = $sm->get('HttpRouter');
        $render                        = $sm->get('ViewRenderer');
        $event                         = $this->getEvent()->setRouter($http);
        $config                        = $sm->get('config');
        $server_url                    = $config['server_url'][$country];
        try {
            var_dump($server_url . $this->url()->fromRoute('home/newest'));
            var_dump($server_url . $this->url()->fromRoute('home/contact'));
        } catch (\Exception $e) {
            var_dump($e->getMessage());
        }
        exit;

0 个答案:

没有答案