Sahnestückchen

Teil 5: Reihe: PHP - Frameworks - Cake PHP

Spannender wird es bei n-zu-m-Relationen wie sie zwischen Frameworks und Features vorkommen. In diesem Fall handelt es sich im Sinne von Cake PHP um HABTM-Relationen. Dies steht für $hasAndBelongsToMany. Wenn die n-zu-m-Tabelle korrekt benannt ist, ist die Angabe dieser Relation allerdings ganz einfach:

<?php
class Framework extends AppModel {
var $belongsTo = array(
'Licence' => array(
'className' => 'Licence',
'foreignKey' => 'licence_id'
)
);
var $hasAndBelongsToMany =
'Features';
}
?>

Voraussetzung ist in diesem Beispiel, dass es eine Tabelle features_frameworks gibt. Diese muss zwei Fremdschlüssel mit den Feldnamen feature_id und framework_id besitzen. Alternativ können Sie die Feldnamen und auch weitere SQL-Abfragen in einem Parameter-Array ergänzen. Mehr dazu unter .

In der View müssen Sie nun nur noch die Informationen aus dem Feature-Model verarbeiten. Dazu ergänzen Sie eine einfache Schleife, die jeweils den Namen des Features in ein Listenelement ausgibt:

<div id="view"><table border="1"><tr><th>Frameworks</th><th>Licence</th><th>Features</th></tr><?php
foreach ($frameworks as $framework) {
echo '<tr><td>';
echo $framework['Framework']['name'];
echo '</td><td>';
echo $framework['Licence']['name'];
echo '</td><td><ul>';
foreach ($framework['Features'] as
$feature) {
echo '<li>';
echo $feature['name'];
echo '</li>';
}
echo '</ul></td></tr>';
}
?></table></div>

Sie sehen an der Struktur der Daten, dass alle Daten in Cake PHP in einem Model vorgehalten werden, das wiederum durch einen Array dargestellt wird. Für unser Beispiel besteht der Array mit dem Ergebnis dabei aus mehreren Arrays, die die einzelnen Datenzeilen enthalten.

© Archiv

Automatisch: Ohne eigenen Datenbank-Abfrage- Code entsteht eine einfache Ausgabe.

Die Daten eines Models sind dann unter dem Modelnamen im Singular und mit Großbuchstaben verfügbar, also beispielsweise Framework. Dies macht dann auch das Speichern der Daten sehr einfach. Jedes Model besitzt eine save()-Methode, die von AppModel geerbt wird. Dieser Methode übergeben Sie einfach die Daten in der Array-Struktur.

Guter Einstieg

Cake PHP ist stringent aufgebaut und mit umfangreichen Funktionalitäten versehen. Reizvoll ist auch die Fähigkeit, sowohl mit PHP 4 als auch mit PHP 5 zu arbeiten. Sie können etwa auch für die PHP 5-Variante alle Eigenschaften mit public statt var versehen.

Dank der umfangreichen Dokumentation und der Bakery eignet sich Cake PHP sehr gut als Einstieg in die Welt der Frameworks.

Dank Erweiterbarkeit über das Vendor-Verzeichnis und dank umfangreicher Bibliotheken wie beispielsweise Prototype and Scriptaculous für Ajax ist aber auch jenseits des Einstiegs für ausreichend Funktionalität gesorgt.

Mehr lesen

Chronologische Liste und Netflix-Links -

Neuerscheinungen in der Übersicht -

Vorschau auf Film- und Serien-Highlights -

Mehr zum Thema

Webdesign

Adobe Illustrator wird im Webdesign immer beliebter. Wie Sie das Tool richtig einsetzen, erfahren Sie hier.
Facebook

Was sind die Implikationen für Unternehmen und Endanwender bei Facebooks neuer Suche Graph Search?
Online-Recht

Allgemeine Geschäftsbedingungen liest sich niemand gerne durch. Sie sind jedoch notwendig und äußerst sinnvoll. Worauf sie achten sollten.
Online-Recht in der Cloud

Dateien werden immer häufiger in der Cloud bereitgestellt. Rechtlich ist das jedoch durchaus problematisch. Wir klären über das Urheberrecht in der…
E-Commerce-Logistik

Für den Erfolg eines Online-Shops sind zahlreiche Faktoren verantwortlich. Neben Produktvielfalt und Darstellung der Waren gehört auch die Logistik.