Routing 如何使用Symfony中的getRoute获取对象及其转换?

Routing 如何使用Symfony中的getRoute获取对象及其转换?,routing,model,symfony1,translation,Routing,Model,Symfony1,Translation,我有几个模型有翻译。当我加载 $this->tour = $this->getRoute()->getObject(); 例如,它给我一个旅游对象。但是,它不加入tour_translation表;所以当我试图得到它的标题;symfony进行另一个sql查询 如何重写某些内容,因此在漫游模型中,当我请求对象时,它会返回对象及其在当前区域性中的转换 我一直在查看是否可以重写任何方法,但我现在不确定 我知道我可以做到以下几点,但我更喜欢第一个选项,因为它更透明、更优雅: $thi

我有几个模型有翻译。当我加载

$this->tour = $this->getRoute()->getObject();
例如,它给我一个旅游对象。但是,它不加入tour_translation表;所以当我试图得到它的标题;symfony进行另一个sql查询

如何重写某些内容,因此在漫游模型中,当我请求对象时,它会返回对象及其在当前区域性中的转换

我一直在查看是否可以重写任何方法,但我现在不确定

我知道我可以做到以下几点,但我更喜欢第一个选项,因为它更透明、更优雅:

$this->tour = Tour::getTour($request->getParameter('id'), $lang);

谢谢

您需要在路线定义中指定通过
方法
选项检索对象时使用的方法:

my_route
  url: /tour/:id
  options:
    model: Tour
    type: object
    method: getTourForRoute
params
为简洁起见跳过了部分)

请注意,该方法不会将
id
直接作为参数接收,而是作为传递给路由的参数数组接收,因此您可以编写如下方法:

public function getTourForRoute($parameters)
{
  return self::getTour($parameters['id']);
}
最后注意:此选项仅在使用
sfDoctrineRoute
sfPropelRoute
:-)时可用