【发布时间】:2014-01-24 10:50:55
【问题描述】:
我有这个模型:
News -> 1:n -> Visit
News -> m:n -> FrontendUserGroup
FrontendUser -> 1:n -> Visit
So Visit 显示哪个 FrontendUser 访问了哪个新闻。
我需要获取当前登录的 FrontendUser 的所有新闻。 所有新闻应按“日期时间”属性排序,但首先应显示登录用户尚未访问的新闻。
这是给出正确结果的 SQL:
SELECT
(SELECT COUNT(*) FROM tx_xxnews_domain_model_visit v WHERE v.news = n.uid AND v.fe_user = fu.uid) AS visits,
n.*
FROM tx_xxnews_domain_model_news AS n
JOIN tx_xxnews_news_frontendusergroup_mm nfg ON n.uid = nfg.uid_local
JOIN fe_users fu ON FIND_IN_SET(nfg.uid_foreign, fu.usergroup)
WHERE fu.uid = 2271 # logged in user id
ORDER BY visits ASC, n.datetime DESC
Extbase 有没有办法得到这个结果?
我在 NewsRepository 中试过这个:
protected $defaultOrderings = array(
'COUNT(visits)' => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING,
'datetime' => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_DESCENDING
);
但它似乎不起作用。
有什么想法吗?
谢谢。
【问题讨论】:
标签: count sql-order-by typo3 children extbase