Zend framework2 如何在视图助手中使用translate方法?
假设我们有如下示例视图帮助程序代码:Zend framework2 如何在视图助手中使用translate方法?,zend-framework2,Zend Framework2,假设我们有如下示例视图帮助程序代码: 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
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的最佳方式是什么
关于,最简单的方法是翻译视图帮助器:
public function __invoke($id)
{
return $this->view->translate('Super extra product');
}
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');
}
}
您还可以使用ServiceManager
执行翻译或其他操作。
在Module.php
中,更改getViewHelperConfig
以传递ServiceManager
:
public function getViewHelperConfig()
{
return array(
'factories'=>array(
'ProductType'=>function ($helperPluginManager){
return new \Product\View\Helper\ProductType($helperPluginManager->getServiceLocator());
}
)
);
}
现在,您可以使用ServiceManager
在视图帮助器中翻译:
public function __invoke($id)
{
return $this->view->translate('Super extra product');
}
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');
}
}