ZF2在模型中查看帮助器

时间:2015-03-18 14:34:25

标签: php model localization zend-framework2 view-helpers

我正在本地化在ZF2上编写的项目。在某些地方,人们在模型层中使用静态变量。

    public function getTransitions()
    {
        $transitions = array(
            static::STATE_NEEDS_REVIEW         => 'Needs Review',
            static::STATE_NEEDS_REVISION       => 'Needs Revision',
            static::STATE_ARCHIVED             => 'Archive'
        );
//      some code...
        return $transitions;
    }

我有用于翻译的自定义视图助手,它基本上是具有一些附加功能的ZF2翻译器的包装器。我知道如何在视图层和控制器中使用它,如下所示:

$t = $this->getServiceLocator()->get('ViewHelperManager')->get('t');

但是如何在模型层中使用我的视图助手???

1 个答案:

答案 0 :(得分:0)

如果需要访问模型中的服务定位器,可以实现ServiceLocatorAwareInterface,如问答中所述:

injecting ServiceLocator via ServiceLocatorAwareInterface doesnt work

但是,我建议在模型中使用视图助手可能不是正确的方法。也许您可以从ViewHelper获取相关逻辑并将其移动到您可以通过注入或仅在需要时创建模型类时可用的服务。然后,视图助手可以使用相同的服务。