Select-Box in CakePHP mit Datenbankwerte vorbelegen

Man hat z.b. eine Tabelle in der alle gültigen Länder stehen und will diese in CakePHP auf der Seite nutzen – nur wie? In unserem Beispiel heisst die Tabelle Country und hat genau zwei Felder (wie es auch für die Select-Box üblich ist mit id und value).

Tabellenstruktur

Die Tabellenstruktur ist eigentlich irrelevant für das Beispiel, wird jedoch der Vollständigkeithalber hier mit aufgeführt.

CREATE TABLE County (id tinyint unsigned not null auto_increment, langKey varchar(50) not null, PRIMARY KEY(id))

Controller

Im Controller sollte man eine Methode bereitstellen, die diese Daten lädt und in ein entsprechendes Objekt packt. Auf jeder Seite, wo man nun die Select-Box anzeigt, kann man die Methode entsprechend aufrufen.

$data = $this->Country->find('all',array('fields' => array('Country.id','Country.langKey')));
$data = Set::combine($data,'{n}.Country.id','{n}.Country.langKey');
$this->set('countryData',$data_combine);

View

In der View muss man nun nur noch eine Select-Box mit dem FormHelper anlegen.

echo $form->input('country', array('options'  => array($countryData)));



Beitrag veröffentlicht

in

,

von

Schlagwörter:

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert