symfony getTable где предложение в качестве объекта - PullRequest
1 голос
/ 10 мая 2011

Моя таблица использует модуль перевода

// This works fine for 1 item
$o = Doctrine_Core::getTable('myTable')->find(1);
echo $o->getName();

Я хочу иметь возможность выполнить запрос и правильно получить все строки с именем (которое находится в таблице перевода)

$o = Doctring_Core::getTable('myTable').createQuery('a')
   ->leftJoin('a.Translation t')
   ->andWhere('a.visible = ?', true)
   ->andWhere('t.lang = ?', 'en')
   ->execute();

Я хочу быть в состоянии сделать

foreach($o as $item) {
  echo $item->getName();
}

Но мой getName () всегда равен нулю ...

1 Ответ

0 голосов
/ 10 мая 2011

Вам нужно использовать $item->Translation->name, или вы можете создать аналогичную прокси-функцию:

//lib/model/doctrine/myTable.class.php
function getName() {
  return $this->Translation->name;
}

Эта функция может вызываться явно как $item->getName() или неявно через __get() как $item->name;

Полагаю, вы используете поведение доктрины для хранения переводов - никогда не использовали его, поэтому ваш пробег может отличаться.

...