我在symfony中使用__('text')
构造,因此我可以进行国际化。但是我试图在setFlash消息中使用它,如下所示
$this->getUser()->setFlash('error', __('message'));
在actions / actions.class.php中,但它给了我一个错误
Fatal error: Call to undefined function __()
我是否可以假设我不能在动作级别使用__()
而只能使用模板级别?
答案 0 :(得分:13)
在动作中你必须使用上下文使用__():
echo $this->getContext()->getI18N()->__('message');
您也可以使用:
sfProjectConfiguration::getActive()->loadHelpers(array('I18N'));
$this->getUser()->setFlash('error', __('message'));
答案 1 :(得分:3)
如果要执行此操作,最好的选择是将此方法添加到actions.class.php:
public function preExecute()
{
sfProjectConfiguration::getActive()->loadHelpers(array('I18N'));
parent::preExecute();
}
答案 2 :(得分:1)
它对我很有用!谢谢
您也可以执行$ this-> loadHelpers(array('I18N'));在ProjectConfiguration类或前端| backendConfiguration类
中此致