Symfony2具有标准和参数的实体

时间:2015-02-09 21:21:14

标签: symfony entity criteria

我正在尝试创建一个具有oneToMany关系的实体和像这样的标准

  /**
 * Get translatedData
 *
 * @return translatedData collection
 */
public function getTranslatedData($language) {
    $criteria = Criteria::create()->where(Criteria::expr()->eq("language", $language));
    $result = $this->getAllTranslatedData()->matching($criteria)[0];

    if (count($result) == 0){
        $criteria = Criteria::create()->where(Criteria::expr()->eq("language", 'en'));
        $result = $this->getAllTranslatedData()->matching($criteria)[0];
    }
    return $result;
}

基本上我想将语言环境传递给实体,因此它将在twig模板中以语言环境语言返回translatedData,只需调用 {{mainEntity.translatedData.property}}(如果该语言中没有翻译过的数据,则会回退到'en') 但是对mainEntity执行find()我无法将任何param传递给此函数。

任何想法都表示赞赏。

由于

1 个答案:

答案 0 :(得分:1)

您可以直接在树枝上调用您的方法,而不是在您的实体上调用属性translatedData.property

{{ mainEntity.getTranslatedData('your_language') }}

它允许您传递参数。