我有两个实体:“OriginNews”和“FollowUpNews”。它们与一对多有关,因此一个OriginNews可以有多个FollowUpNews。
在我的OriginNewsAdmin中,我只想在listview中显示OriginNews,但也想通过FollowUpNews排序(如果已连接)......所以我决定通过改变这样的createQueryMethod来操纵我的listView数据。
elements = [...]
weights = [...]
for(...):
element = sample(elements, weights)
*Some calculation with element and changing the values of weights*
这应该将followUpNews加入到originNews并按importdate排序...当我运行它时,生病得到错误。
在渲染模板期间抛出了异常 (“[语义错误]第0行,第94行'sortDate ASC':'错误: 'sortDate'未定义。“)。
奏鸣曲管理员开玩笑吧?我在上面一行定义了sortDate字段......即使我删除了“HIDDEN”关键字......没有变化! 问题在哪里?
我的目标是,始终拥有最新的FollowUpNews的OriginNews ......可能是另一种方式吗?
由于
答案 0 :(得分:0)
我发现问题的小时数,我发现这很简单,这是几年来存在的一个学说错误......
我遇到了与此处描述的相同的问题
Doctrine Querybuilder ORDER BY clause is not in SELECT list
我还将sql模式设置为null,从而解决了这个问题。我还安装了doctrine扩展来按顺序使用IFNULL函数。
我的sql现在看起来像跟随
$query->leftJoin('o.followUpNews', 'fun')
->addOrderBy(IFNULL('fun.importDate', 'o.importDate'), 'DESC');
这适合我。