Select-Box in CakePHP mit Datenbankwerte vorbelegen

March 13th, 2010 by author Leave a reply »

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


VN:F [1.9.22_1171]
Rating: 4.0/10 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)
Select-Box in CakePHP mit Datenbankwerte vorbelegen, 4.0 out of 10 based on 1 rating
Advertisement

Leave a Reply