来自数据库的 Symfony2 REST 翻译
Symfony2 REST Translation from database
我面临着非常困难的问题来处理我的情况。我在数据库中保存标题,en 的名称是 title,翻译列的名称是 bntitle。
现在我将 FosRest 与 jms 序列化程序一起使用来提供 api 响应。但我找不到一种方法来发送基于本地的响应。因为它总是调用
getTitle()
获取标题的方法,我的问题是如果本地是 en 那么标题键将是 getTitle()
如果本地是 bn 标题应该调用 getBnTitle()
;
这个控制器:
public function getAction(Content $entity, Request $request)
{
$locale = $request->getLocale();
$data = array();
$data['_embedded']['content'] = $entity;
eturn $data;
}
我该怎么做?
这肯定不是处理翻译的最佳方式,但如果您只需要它作为标题属性,您可以将本地作为参数传递给实体,然后在 getTitle()
方法中执行测试。
public class YourEntity{
private $locale ;
//......
public function setLocale($locale){
$this->locale = $locale
}
public function getTitle(){
// your test here
if ( $locale === 'bn' ) return $this->getBnTitle();
return $title ;
}
然后在你的控制器中:
public function getAction(Content $entity, Request $request)
{
$locale = $request->getLocale();
// pass local to entity
$entity->setLocale($locale);
$data = array();
$data['_embedded']['content'] = $entity;
eturn $data;
}
编辑:
如果你想要一个更好的解决方案,有很多学说扩展可以进行翻译,其中之一就是这个
https://github.com/Atlantic18/DoctrineExtensions/blob/master/doc/translatable.md
我面临着非常困难的问题来处理我的情况。我在数据库中保存标题,en 的名称是 title,翻译列的名称是 bntitle。
现在我将 FosRest 与 jms 序列化程序一起使用来提供 api 响应。但我找不到一种方法来发送基于本地的响应。因为它总是调用
getTitle()
获取标题的方法,我的问题是如果本地是 en 那么标题键将是 getTitle()
如果本地是 bn 标题应该调用 getBnTitle()
;
这个控制器:
public function getAction(Content $entity, Request $request)
{
$locale = $request->getLocale();
$data = array();
$data['_embedded']['content'] = $entity;
eturn $data;
}
我该怎么做?
这肯定不是处理翻译的最佳方式,但如果您只需要它作为标题属性,您可以将本地作为参数传递给实体,然后在 getTitle()
方法中执行测试。
public class YourEntity{
private $locale ;
//......
public function setLocale($locale){
$this->locale = $locale
}
public function getTitle(){
// your test here
if ( $locale === 'bn' ) return $this->getBnTitle();
return $title ;
}
然后在你的控制器中:
public function getAction(Content $entity, Request $request)
{
$locale = $request->getLocale();
// pass local to entity
$entity->setLocale($locale);
$data = array();
$data['_embedded']['content'] = $entity;
eturn $data;
}
编辑: 如果你想要一个更好的解决方案,有很多学说扩展可以进行翻译,其中之一就是这个 https://github.com/Atlantic18/DoctrineExtensions/blob/master/doc/translatable.md