Empfehlungen: Erweiterte Suche

Validierung mit Daten aus 1 Form und 2 Modellen?

Datenbankobjekte strukturieren und validieren

Validierung mit Daten aus 1 Form und 2 Modellen?

Beitragvon mivogtLU » Do 18. Feb 2010, 12:18

So ich baue meine Fragen zur Validierung noch etwas aus ... als cake neuling istv das Thema für mich doch ein wenig zu sehr mit Stolperfallen bestückt und ich brauche bitte ein wenig Hilfe ,)

Mein Problemchen:
ich habe zwei Tabellen
t_Rooms: id, Bettenzahl, ...
t_Positions: id, room_id, anz_erwachsene, anz_kinder, anz_jugendliche, anreise, abreise


Dazu eine View für die Positions
v_Positions mit den Feldern von t_Positions

Nun würde ich gerne validieren, ob die Summe der anz_* Felder zur Bettenzahl von Room
passt. (anz_erwachsene * anz_kinder + anz_jugendliche,)<room.Bettenanzahl

Frage 1:
Wo validiere ich das - Modell oder Controller, oder als behavior? :?

Frage 2:
Wie greife ich einerseits auf die Werte aus dem gerade gesendeten Formular für das Modell
Positionen zu um die Zimmernummer zu erfahren und zugleich auf das Modell Rooms um dort
die Bettenanzahl zum Zimmer abzufragen? :?

Im puren php würde ich $post[Zimmernummer] und ein sql-request für das Zimmer/Bettenanzahl einsetzen;
wie geht das elegant mit cake?

Codeschnippel wären mir sehr willkommen ;)

Danke vorab

Gruß aus LU

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: Validierung mit Daten aus 1 Form und 2 Modellen?

Beitragvon rasta » Do 30. Sep 2010, 05:11

Wenn du uses einsetzt, dann kannst du im Controller auf das andere Model zugreifen, und die Daten dann etwas umfummeln.

class AController extends AppController {
uses = array('a','b');
function index(){
$bdata = $this->b->ich_bastel_mir_die_daten_aus_form_a_so_wie_b_sie_braucht($this->data);
$this->b->set($bdata);
if(!$this->b->validates(){
this->redirect->('zum Formular a index');
}
}

Was allerdings bei validates in cake.128 nicht funzt ist das setzen der css Klasse error. Siehe mein letztes Posting hier. Bzw. habe ich dazu noch nichts gefunden, ausser evtl das modifizieren der entsprechenden cakePHP Klassen

regards rasta
rasta
 
Beiträge: 10
Registriert: Di 7. Apr 2009, 06:58
CakePHP-Version: 1.2.4
OS: Mac/Win

Re: Validierung mit Daten aus 1 Form und 2 Modellen?

Beitragvon scratch » Sa 2. Okt 2010, 03:38

würde es ähnlich, aber ohne diese "ich fummele mir das um nr" zu machen. da es einfacher geht.

im view:
form->input (a.feldname)
form->input (b.feldname)

im Controller a
dann uses (a,b)
uses hängt imho von der performance ab.

dann weiter im controller
$data_b = this->data['b'];
this->b->save($this->data[b])

wo du das machst, das bleibt dir überlassen, ich probiere mich an das motto: "fat model, skinny controller" zu halten. was mit aber auch nicht immer gelingt.
scratch
 
Beiträge: 6
Registriert: Fr 1. Okt 2010, 09:35
CakePHP-Version: 1.3.7
OS: egal


Zurück zu Models

Wer ist online?

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

cron