Sugarcrm下拉值排序

时间:2017-03-08 08:36:59

标签: php sugarcrm

这是我的代码:

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';

Refrence From here

我在我的代码中做了同样的事情并且工作正常,除了按顺序:按list_order asc 订购。
下拉应按顺序排列如下:排序依据list_order asc
但是糖会覆盖它并按下拉列表的键值对下拉列表进行排序: id
我希望键值为 ID ,但排序应该类似于:order by list_order asc

我在Google上搜索,但我没有找到任何办法,所以我发布了这个问题。

2 个答案:

答案 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;

来自documentation

  

此函数对数组进行排序,使数组索引保持其状态   与它们相关的数组元素的相关性。这是   主要用于排序实际元素所在的关联数组   订单很重要。