2017-06-19 2 views
0

Ich habe eine Auswahl auf einem Formular, das ich mit Benutzern für den Benutzer zu füllen möchten.CakePHP Sort Auswahl von IDs

einfach klingt, aber das Problem, das ich bin immer mit dem IDs ist, Beispiel (meine Liste ist viel länger und kommt von MySQL DB):

$users = [ 
    1 => "Zelda", 
    2 => "Apple" 
] 

Ergebnis sortieren: (jetzt IDs sind ungültig)

$users = [ 
     1 => "Apple" 
     2 => "Zelda", 
    ] 

Wenn ich die Liste sortieren, dann werden die IDs umgeworfen wird, was bedeutet, ich nicht, dann auf den Kuchen Save-Methode in meinem Controller nennen kann, habe ich eine Art meiner versuchte hinzugefügt:

$users = $this->User->find('list', [ 
     'recursive' => -1, 
     'conditions' => [ 
      'User.status' => 1, 
      'User.id > ' => 1, 
      'NOT' => [ 
       'User.phone' => null 
      ] 
     ], 
     'fields' => [ 
      'User.full_name' 
     ], 
     'order' => [ 
      'User.full_name' 
     ] 
    ]); 

Ich habe zusätzlich ein anderes Feld mit einem ähnlichen Problem, es verwendet den Text aus zwei Feldern, um eine einzige ID zuzuordnen, also habe ich den Text zusammengehängt, aber ich habe Mühe, die Liste mit dem Formular Helper aber sortiert um die ID-Zuordnung beizubehalten.

Das muss ein wirklich häufiges Problem sein, da man ein numerisch indiziertes Array nicht sortieren kann und die IDs in der gleichen Position behalten kann. Was also fehlt mir?

Vielen Dank im Voraus.

Antwort

2

Ich bin sicher, dass Sie nicht mit der ID arbeiten, sind Sie nur ein einziges Feld auswählen, die 'User.full_name' Sie ist, sollte id wählen:

 'fields' => [ 
      'User.id', 
      'User.full_name' 
     ] 

Ist die Art und Weise 2 Felder zu bekommen, was man einfach bestellen ist Die Nummerierung des Standardarrays ist nicht ID.

+0

Vielen Dank das war das Problem mit den Benutzern zu finden, meine andere finden, ich musste Hash :: Combine verwenden, um das gewünschte Ergebnis zu erhalten – trevrobwhite

Verwandte Themen