这是我的代码:
在custom/Extension/application/Ext/Utils/ or custom/include/custom_utils.php
<?php
function getActiveReleases()
{
$query = "SELECT id, name FROM releases where deleted=0 and status='Active' order by list_order asc";
$result = $GLOBALS['db']->query($query, false);
$list = array();
$list['']='';
while (($row = $GLOBALS['db']->fetchByAssoc($result)) != null) {
$list[$row['id']] = $row['name'];
}
return $list;
}
unset($dictionary['MODULENAME']['fields']['FIELDNAME']['options']);
$dictionary['MODULENAME']['fields']['FIELDNAME']['function'] = 'getActiveReleases';
我在我的代码中做了同样的事情并且工作正常,除了按顺序:按list_order asc 订购。
下拉应按顺序排列如下:排序依据list_order asc 。
但是糖会覆盖它并按下拉列表的键值对下拉列表进行排序: id 。
我希望键值为 ID ,但排序应该类似于:order by list_order asc
我在Google上搜索,但我没有找到任何办法,所以我发布了这个问题。
答案 0 :(得分:1)
替换这个:
$list[$row['id']] = $row['name'];
通过索引数组:
$arrayIndex = 0;
while (($row = $GLOBALS['db']->fetchByAssoc($result)) != null) {
$list[$arrayIndex] = $row['name'];
$arrayIndex++;
}
它不是sugarcms
,而是关于php本身
当您提供$row['id']
作为数组键时,按性质排序
php将按此变量值的顺序求助
以此作为一个简单示例:https://3v4l.org/8HjFB,我希望这能让您更清楚
答案 1 :(得分:1)
在你的while语句之后怎么样?
asort($list);
return $list;
此函数对数组进行排序,使数组索引保持其状态 与它们相关的数组元素的相关性。这是 主要用于排序实际元素所在的关联数组 订单很重要。