Hallo,
ich versuche gerade die Datensatzmenge auf die Ownership der Datensätze per Behavior einzuschränken.
Dazu gibt's ja extra den Callback beforeFind($queryData).
Nun fuxt mich $queryData etwas:
Entgegen der Doku ist es nicht nur ein Param-String wie bei Find etc. sondern das ganze Model Object.
Daher kann ich weder den array $queryData["conditions"], wie aus der Doku anzunehmen verwenden (den $queryData ist ein Object und keine array var), noch das Construct $queryData->conditions benutzen (unknown property).
Meine Frage sind daher:
- Wie schaffe ich es, die Ergebnismenge über beforeFind einzuschränken; bzw. wie 'versorge' ich queryData richtig?
- Wie erreiche ich das ganze auch mit abhängingen Tabellen des Models -> in Select-Boxen des Models sollen auch nur die Datensätze der jeweiligen Owner erscheinen. Cake generiert dieses Query aber (Stand alone, nicht als Join, da es zur Befüllung der Selectbox so gebraucht wird) selbstständig. Bringt es was, das in den Relations zu tun? (Also var $belongsTo etc.)?? Oder werden Selectbox-Queries wieder aus anderen Daten genereirt?
Beim Speichern der Daten habe ich ein anderes Problem:
beforeSave: Hier erhalte ich die Daten und kann das Feld "modiefied_by" richtig setzen.
afterSave($created): Liefert mir zwar die wunderbare $created-Variable, mit der ich sehen kann, dass der Datensatz neu ist; aber ich kann nicht mehr speichern.
Daher die (vielleicht einfache) Frage: Wie stelle ich in beforeSave EINFACH fest, ob der Datensatz schon existiert? (Um dann abhängig davon auch created_by zu setzten oder eben unverändert zu lassen).
Bin für hilfreiches sehr, sehr dankbar!
Gruß, Sam