有没有人知道将连接字段的结果加载到父实体的方法?
我需要这个的例子,在我的文章实体中。 一篇文章可以有多个翻译,但应根据所选的区域设置加载一个。
文本和标题字段是从文章翻译包中加载的,它们在我的文章实体中不存在。
加载所有字段不是问题,在我的articleRepository中是以下代码:
....
$oQueryBuilder->select('a, tr');
$oQueryBuilder->from('CommonArticleBundle:Article', 'a');
$oQueryBuilder->andWhere('a.active = 1');
$oQueryBuilder->leftJoin('a.translations', 'tr');
$oQueryBuilder->andWhere('tr.language = 2');
.........
返回的查询是包含所有文章字段和翻译字段的单行。
是否可以访问twig中的翻译字段,如:{{article.text}}?
我尝试添加私人$ title;到我的文章实体,但var_dump显示一个值null。
答案 0 :(得分: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'];
}