Empfehlungen: Erweiterte Suche

Im Controller auf (add)View-Daten zugreifen?

Daten auslesen, verarbeiten und den Views übergeben

Im Controller auf (add)View-Daten zugreifen?

Beitragvon mivogtLU » Sa 20. Feb 2010, 09:57

Hallo und moin,

kurze Frage:
Wie greife ich vom Controller auf die aus der View übergebenen Daten zu?
Ich habe zB in der add_view drei Zahlenfelder
A,B,C (numeric/integer)
nun will ich, ehe das vom add an create,save weitergegeben wird prüfen ob die einen Maximalwert nicht überschreiten.

Mein erster Versuch klappte leider nicht und mein CakeBuch brachte mich nicht weiter :(

if (($this->BookingPosition->A)>9) {..}

die Menge der ()() ist dabei egal, Fehlermeldung:
Undefined property: BookingPosition::$A

Bitte helft mir mal wieder einen Schritt weiter - danke!

Gruß

Michael
mivogtLU
 
Beiträge: 46
Registriert: Di 12. Jan 2010, 21:22
Wohnort: 67059
CakePHP-Version: 1.3 final
OS: Linux, Win XP-Vista

Re: Im Controller auf (add)View-Daten zugreifen?

Beitragvon mbrod » Sa 20. Feb 2010, 11:12

nun will ich, ehe das vom add an create,save weitergegeben wird prüfen ob die einen Maximalwert nicht überschreiten.

Dies nennt man Validierung. Siehe:http://book.cakephp.org/view/125/Data-Validation

Wie greife ich vom Controller auf die aus der View übergebenen Daten zu?

Siehe:http://book.cakephp.org/view/424/data

Am besten vorgehen wie unter http://www.cakephp-forum.com/konzeption-und-vorgehensweise/wie-fangt-man-am-besten-an-t483.html#p1995 beschrieben, dann sieht man wie die gebackenen Controller das Problem, wie man auf die Daten im View zugreift schon gelöst haben.
mbrod
 
Beiträge: 199
Registriert: Mi 20. Mai 2009, 18:09
Wohnort: Frankfurt am Main
CakePHP-Version: 1.3.8
OS: Mac OS X

Re: Im Controller auf (add)View-Daten zugreifen?

Beitragvon mivogtLU » Sa 20. Feb 2010, 12:59

Danke für die Belehrung und die Links. :)
Wer viel fragt der viel lernt (hoffe ich mal) :mrgreen:

Validierung läuft im Modell, das habe ich schon irgendwo gelesen.
Da die von mir gewüsnche Validierung in Cake nicht vorgesehen ist, muss ich mir also eine eigene Funktion dafür stricken.
Auch das habe ich schon begriffen.

-- Greife ich im Model mit $this->Datenfeldname auf Einzelwerte zu um die an meine Funktion zu übermitteln?

Ein Zusatzproblem habe ich da noch. Ich müsste Daten aus einem assoziertem Modell abfragen und in die Validierung einbeziehen.

Tabelle booking_positions
id
room_id
Anz1
Anz2
Anz3

Tabelle rooms
id
MaxAnz

-- Wie kann ich nun im Modell von booking_position nicht nur auf $this->Anz1, $this->Anz2, $this->Anz3 zugreifen sondern auch aus dem Model rooms aus dem Element mit der id = room_id die MaxAnz auslesen um dann meine SUM(Anz)<MaxAnz zu prüfen?

Danke vorab.

Michael
mivogtLU
 
Beiträge: 46
Registriert: Di 12. Jan 2010, 21:22
Wohnort: 67059
CakePHP-Version: 1.3 final
OS: Linux, Win XP-Vista


Zurück zu Controller

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste