2012-03-28 4 views
0

Ich bin sicher, das ist einfach, aber ich kann nicht herausfinden, wie es zu erreichen:CakePHP 2.0: Ändern wählen Itemtext mit Formhelper ohne ID zu Modifizieren

Ich habe ein Modell mit einer title und sub_title Säule; Es gibt häufig Einträge, die die gleichen title haben und nur durch ihre sub_title differenzierbar sind. Also, ich brauche die Ansichten für CRUD Befehle effektiv angezeigt werden diese:

<option>Title: Subtitle</option> 

Aber ich weiß nicht, wie Formhelper zu bekommen, dies zu tun. Kann jemand eine Strategie, um eine generische Form dieser Verfügung stellen (zB:.!

echo $this->Form->input('title', array(
             //whatever option(s) solve this 
             )); 

Lösungen oder Beratung sehr geschätzt

+1

Sie bedeuten '$ this-> Formular verwenden -> ...' Ich denke, – mark

+0

Ja, ich tat, hoppla. Ich denke, die Frage steht, tho. : P – Jonline

Antwort

1

anders Optionen einstellen, etwas mit der Set Klasse:

$results = $this->Model->find('all'); 
$options = Set::combine($results, '{n}.Model.id', array('{0}: {1}', '{n}.Model.title', '{n}.Model.sub_title')); 

So würde Ihr Optionsarray ungefähr so ​​aussehen:

array(
    0 => 'Title: sub title', 
    1 => 'Title: different sub' 
); 

Und Ihre Drop-Down-Set diese Optionen

$this->Form->input('title', array('options' => $options)); 
+0

Perfekt. _Exactly_ was ich gesucht habe. Tausend Dank. Ich bin nicht vertraut mit der Syntax {n} - mit der Möglichkeit, dass Sie einen Link dazu haben, wo ich in der API darüber lesen könnte? Oder hat das etwas mit PHP als Sprache zu tun? – Jonline

+1

Cool! Es ist Kuchen spezifisch. Ich habe einen Link zu den 'Set'-Klassen-API-Dokumenten hinzugefügt. Es gibt Links zu dem Buch in diesen Dokumenten mit Beispielen und so. – jeremyharris

+0

Ok dann-eine Million und ein Dank. ;) – Jonline