我将 Symfony2 与 Doctrine2 一起使用。我想实现以下目标:
$place = $this->getDoctrine()->getRepository('TETestBundle:Place')->find($id);
在那个地方将是用户语言(会话中)的地方信息(公共数据+文本)。因为我要这样做数百次,所以我想在幕后传递它,而不是作为第二个参数。因此,英语用户将以英语查看地点信息,而西班牙用户则以西班牙语查看。
一种可能性是从 EntityRepository 访问应用程序的语言环境。我知道它是通过服务和 DI 完成的,但我想不通!
// PlaceRepository
class PlaceRepository extends EntityRepository
{
public function find($id)
{
// get locale somehow
$locale = $this->get('session')->getLocale();
// do a query with the locale in session
return $this->_em->createQuery(...);
}
}
你会怎么做?您能否详细解释一下我必须创建和扩展的步骤和新类?我计划在准备好后发布这个翻译包:)
谢谢!