我正在使用github的“contao-news-sorting”模块根据排名值对我的新闻进行排序。此排名字段在新闻dca中扩展。我可以按升序排序。但问题是,当排名字段为空时。默认情况下,它将空值视为零,并首先显示它。我实际上需要这样的空值才能显示在底部。我能做些什么呢?我的代码是
public function fetchrankItems($newsArchives, $blnFeatured, $limit, $offset, $objModule) {
$newsobject= \NewsModel::findPublishedByPids($newsArchives, $blnFeatured, $limit, $offset);
$t = \NewsModel::getTable();
$arrOptions = array();
switch ($objModule->news_sorting)
{
case 'sort_rankid_asc':
$arrOptions['order'] = "$t.rankid ASC";
break;
case 'sort_random':
$arrOptions['order'] = "RAND()";
break;
default:
$arrOptions['order'] = "$t.date DESC";
}
return \NewsModel::findPublishedByPids($newsArchives, $blnFeatured, $limit, $offset, $arrOptions);
}
答案 0 :(得分:1)
这是一个MySQL问题,而不是一个Contao问题。例如,请参阅MySQL: Order by field, placing empty cells at end。
您可以尝试以下示例:
$arrOptions['order'] = "IF ($t.rankid <> '', 0, 1)";