![]() |
|
URL dieses Artikels:
zu Ausgabe:
6.2007
Kuchen backen!
Agile Webapplikationen mit dem CakePHP-Framework
Generierter Quellcode: Modell Weil bake dank den Einstellungen in database.php weiß, wie unsere DB-Struktur aussieht, kann es auch passende Vorschläge geben. Es fragt nach Wunsch für jedes Feld, welche Validierungskriterien wir anwenden wollen und welche Assoziationen zwischen den Tabellen bestehen. Bei unserem Beispiel müssen wir einzig die Assoziation hasMany für das Modell Feed anwählen, die ausdrückt, dass ein Feed viele Feed-Einträge besitzt. Analog dazu, setzen wir beim Modell FeedItem eine belongsTo-Verbindung zu Feed. Mögliche Assoziationstypen zwischen Modellen
<?phpDie Klasse Feed erbt von AppModel, einer CakePHP-Klasse, und enthält nur zwei Variablen: , mit dem Namen der Modellklasse und die von uns gewünschte Assoziation . Die hier möglichen Parameter sind von bake präventiv eingefügt worden. Uns interessiert der Schlüssel dependent, den wir auf true (boolean, nicht string!) setzen. Das bringt CakePHP dazu, beim Löschen eines Feed-Eintrags alle dazu gehörenden FeedItems zu löschen. Wie man vielleicht erkennt, ist es möglich, maßgeschneiderte Assoziationen vorzubereiten, welche eine Sortierordnung, limitierte Anzahl an Resultaten, spezielle Filterkriterien, Felder und so weiter enthalten können. Listing 4: Objekt für das Modell FeedItem <?phpListing 4 zeigt die Datei /app/models/feed_item.php an. Wie bei feed.php findet hier die Assoziation als Array statt, diesmal aber wird die Variable gesetzt. Das Modell ist somit komplett. Gehen wir nun ans Generieren der Controller und starten erneut bake.php! |
||
|