Cake Bakery

Rezepte für die Entwicklung mit CakePHP

Statt sich mit find() Anweisungen herumzuschlagen, passiert es gerade Anfängern immer wieder, dass sie statt dessen lieber direkt ein SQL-Statement mittels query() oder execute() ausführen.
Das solltet ihr aber wirklich nicht tun!
Mit einem Kollegen hatte ich darüber viele Diskussionen, weil ich auch lieber direkt das SQL angegeben habe, aber dann brachte er irgendwann das ultimative Argument:

Du [...]

findCount() und belongsTo

Die Model-Funktionen findCount() und findCountAll() berücksichtigen die Model-Relation belongsTo, was zu ungewollten Effekten führt, da dies zu einigen JOINs in der Datenbankabfrage resultiert und somit mehr oder weniger Resultate liefert, als eigentlich beabsichtigt.
Deshalb sollte man auch vor einem findCount() auf expects() zurückgreifen, um nur die Models zu berücksichtigen, die auch gewollt sind:

$this->MeinModel->recursive = 0;
$this->MeinModel->expects(’MeinModel’);
$anzahl = [...]

Fallstricke bei den Model-Relationen

Die Relationen bei CakePHp Models sind ein grundlegendes Feature und definieren, wie Models untereinander verbunden sind.
Sämtliche find-Methoden aus Cake (auch findCount() und read()) benutzen diese Informationen, um verbundenen Models zu holen. Grundsätzlich eine prima Sache, aber bei komplexeren Datenstrukturen und Rekursionslevel von 2, kann da ein einfaches find() ganz schön viel Daten zurückliefern.
In der Praxis [...]

« Vorige Seite« Previous Entries  Next Entries »Nächste Seite »
Werbung