2015-02-09 50 views
0

我試圖創建一個一對多的關係和標準,這樣Symfony2的實體標準,而params

/** 
* 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; 
} 

基本上我想要一個實體的語言環境傳遞到實體,所以它會在返回translatedData小枝模板中的語言環境語言只需調用 {{mainEntity.translatedData.property}}(如果該語言中沒有翻譯的數據,它將回退到'en') 但在mainEntity上執行find()無法將任何參數傳遞給此函數。

任何想法是讚賞。

感謝

+0

會使用提供此功能的第三方庫作爲選項嗎? https://github.com/KnpLabs/DoctrineBehaviors#translatable – Gildas 2015-02-10 00:19:29

+0

看一看,但我認爲我的問題比這更容易。 只需要將請求傳遞給實體或參數。 – 2015-02-10 12:35:24

回答

1

而是調用的屬性translatedData.property你的實體,你可以簡單地直接調用你的方法在樹枝:

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

它可以讓你傳遞一個參數。

+0

yey!多麼容易! 非常感謝! – 2015-02-12 10:34:52