lep*_*pix 6 php entity translation symfony
假设我有一个User实体:
$user = new User(007);
echo $user->getName(); // display Bond
echo $user->getGender(); // display "Male";
echo $user->getDesignation() // display "Monsieur Bond" or "Mister Bond"
Run Code Online (Sandbox Code Playgroud)
有了这个功能:
public function getDesignation() {
if ($this->getGender() == 'Male') return "Monsieur ".$this->getName();
else return "Madame ".$this->getName();
}
Run Code Online (Sandbox Code Playgroud)
如何使用此实体内的翻译服务翻译"Monsieur"和"Madame"?
似乎翻译服务应该只在Controller内部使用,但我认为在这种情况下在这个实体中使用它是合适的.
与您说的一样,翻译服务是一种"服务",您可以在任何类中使用服务(即将其定义为服务并使用依赖注入器容器).因此,您几乎可以在任何地方使用翻译器.
但像aldo这样的实体说不应该有这种责任.在最糟糕的情况下,如果您真的想要在实体内部翻译内容,您可以使用set方法将翻译器传递给实体,即
$entity->setTranslator($translator);
Run Code Online (Sandbox Code Playgroud)
但我也建议您创建一个处理实体外部问题的类,即使用twig模板
{{ entity.property|trans }}).
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10804 次 |
| 最近记录: |