symfony getTable where子句作为对象

时间:2011-05-10 16:23:36

标签: php symfony1 doctrine

我的桌子正在使用翻译模块

// 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()始终为null ...

1 个答案:

答案 0 :(得分:0)

您需要使用$item->Translation->name,或者您可以创建类似的代理功能:

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

此功能可以像$item->getName()一样明确调用,也可以通过__get()隐式调用$item->name;

我猜你正在使用教条的行为来存储翻译 - 从未使用它,所以你的里程可能会有所不同。