2017-03-08 3 views
0

Diese Sortierung ist mein Code:SugarCRM Drop-Down-Wert

In 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

Ich habe die gleiche Sache in meinem Code und es funktioniert gut, außer Reihenfolge nach: Auftrag von list_order asc.
Drop-Down sollte in Reihenfolge kommen ist wie folgt: Auftrag von List_order Asc.
Aber Zucker überschreiben und Sortieren der Dropdown-Liste nach Schlüsselwert der Dropdown-Liste von: ID.
Ich möchte Schlüsselwert als ID aber Sortierung sollte wie: order by list_order asc

ich auf Google-Suche, aber ich fand keinen Weg, es zu tun, so bin Entsendung ich diese Frage.

Antwort

0

diese ersetzen:

$list[$row['id']] = $row['name']; 

durch indiziertes Array:

$arrayIndex = 0; 
while (($row = $GLOBALS['db']->fetchByAssoc($result)) != null) { 
    $list[$arrayIndex] = $row['name']; 
    $arrayIndex++; 
} 

es nicht um sugarcms ist, es geht um die PHP selbst

, während Sie die $row['id'] bieten als ein Array-Schlüssel, der nach der Art sortiert ist,

php wird es durch die Reihenfolge dieser Variablen Wert

nehmen dies als ein kurzes Beispiel zurückgreifen: https://3v4l.org/8HjFB, ich hoffe, diese machen es Ihnen klar

+0

Aber ich brauche diesen Schlüssel, ich benutze diesen Schlüssel woanders auch. –

+0

Wie wäre es, dieses Element als einzelnes Element hinzuzufügen? '$ list [$ arrayIndex] = $ row' zum Beispiel. – hassan

+0

ich habe nicht verstanden –

0

Wie wäre es damit nach der while-Anweisung?

asort($list); 
return $list; 

Vom documentation:

Diese Funktion sortiert ein Array so, dass Indizes behalten ihre Korrelation mit den Array-Elementen sie zugeordnet sind. Dies wird hauptsächlich bei der Sortierung von assoziativen Arrays verwendet, wo das tatsächliche Element Ordnung ist signifikant.

+0

eine sortierung ist nicht Arbeiten in Zucker –

+0

Funktioniert nicht wie? Es wird nicht sortiert, auch nachdem die asort-Funktion vor der Rückkehr hinzugefügt wurde? – Reisclef

+0

Es gibt mir Fehler beim Hinzufügen. –

Verwandte Themen