Symfony2 Entity с критериями и параметрами

Я пытаюсь создать объект с отношением 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;
}

В основном я хочу передать объекту локаль, чтобы он возвращал переведенные данные на языке локали в шаблоне веточки, просто вызывая {{mainEntity.translatedData.property}} (если на этом языке нет переведенных данных, он вернется к 'en'), но выполняя find () в mainEntity, я не могу передать какой-либо параметр этой функции.

Любая идея приветствуется.

Спасибо


person Jaume Bosch    schedule 09.02.2015    source источник
comment
Будет ли вариант использования сторонней библиотеки, предлагающей такую ​​функцию? github.com/KnpLabs/DoctrineBehaviors#translatable   -  person Gildas    schedule 10.02.2015
comment
Посмотрел, но я думаю, что моя проблема проще, чем эта. Нужно только передать запрос сущности или параметру.   -  person Jaume Bosch    schedule 10.02.2015


Ответы (1)


Вместо того, чтобы вызывать свойство translatedData.property в вашей сущности, вы можете просто вызвать свой метод прямо в twig:

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

Это позволит вам передать параметр.

person Snroki    schedule 10.02.2015
comment
эй! как легко! Большое спасибо! - person Jaume Bosch; 12.02.2015