假设我们有像这样的示例视图助手代码:
namespace Product\View\Helper;
use Zend\View\Helper\AbstractHelper;
class ProductType extends AbstractHelper
{
public function __invoke($id)
{
return $this->translate('Super extra product'); # How to use this method here
}
}
现在在这个视图助手中使用translate的最佳方法是什么?
此致
答案 0 :(得分:2)
最简单的方法是翻译视图助手:
public function __invoke($id)
{
return $this->view->translate('Super extra product');
}
您也可以使用ServiceManager
进行翻译或其他操作。
在Module.php
更改getViewHelperConfig
中传递ServiceManager
:
public function getViewHelperConfig()
{
return array(
'factories'=>array(
'ProductType'=>function ($helperPluginManager){
return new \Product\View\Helper\ProductType($helperPluginManager->getServiceLocator());
}
)
);
}
现在,您可以使用ServiceManager
翻译视图助手:
class ProductType extends AbstractHelper
{
protected $serviceManager;
public function __construct($serviceManager)
{
$this->serviceManager = $serviceManager;
}
public function __invoke($id)
{
return $this->serviceManager->get('translator')->translate('Super extra product');
}
}