0

有谁知道将连接字段的结果加载到父实体中的方法?

我需要这个的一个例子是在我的文章实体中。一篇文章可以有多个翻译,但应根据所选语言环境加载一个。

文本和标题字段是从文章翻译包中加载的,它们不存在于我的文章实体中。

加载所有字段不是问题,在我的文章Repository 中是以下代码:

....
$oQueryBuilder->select('a, tr');
$oQueryBuilder->from('CommonArticleBundle:Article', 'a');
$oQueryBuilder->andWhere('a.active = 1');

$oQueryBuilder->leftJoin('a.translations', 'tr');
$oQueryBuilder->andWhere('tr.language = 2');
.........

返回的查询是包含所有文章字段和翻译字段的单行。

是否可以访问树枝中的翻译字段,例如:{{ article.text }}?

我尝试添加私人 $title; 到我的文章实体,但 var_dump 显示值为 null。

4

1 回答 1

1

你有没有尝试过:

$oQueryBuilder->select(array('a.id', 'tr.title', 'tr.text'));
$articles = $oQueryBuilder->getQuery()->getArrayResult();

然后阅读第一篇文章字段,例如:

$article[0]['title'];

如果您想要子实体,您也可以这样做:

$oQueryBuilder->select(array('a.id', 'tr.title', 'tr.text', 's'));
$oQueryBuilder->leftJoin('a.sessions', 's');

进而:

$sessions = $article[0]['sessions'];
foreach ($sessions as $s)
{
    $text = $s['text'];
}
于 2012-11-21T14:11:28.390 回答