Empfehlungen: Erweiterte Suche

Anfänger Frage zum Thema Controller und Daten aus DB

Daten auslesen, verarbeiten und den Views übergeben

Anfänger Frage zum Thema Controller und Daten aus DB

Beitragvon heohni » Di 8. Feb 2011, 20:04

Hallo,

ich versuche beim editieren eines Datensatzes, ein dropdown mit möglichen Attributen zu erstellen. Diese Attribute liegen in einer anderen Tabelle als der eigentliche Datensatz.

Wie kann ich auf diese Attribute zugreifen, ein dropdown mit allen Werten erstellen und den bereits zugeordneten Wert als selected markieren und an den view übergeben?

Irgendwie sind doch immer alle Anfänge schwer... :roll:

Ich bedanke mich herzlich für alle Antworten!

Gruß
Heohni
heohni
 
Beiträge: 42
Registriert: Sa 29. Jan 2011, 18:58

Re: Anfänger Frage zum Thema Controller und Daten aus DB

Beitragvon mbrod » Di 8. Feb 2011, 22:45

Was heißt Attribute, die in einer anderen Tabelle liegen? Meinst Du eine Verknüpfung von zwei Models? Wenn ja, was für eine Relation?
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: Anfänger Frage zum Thema Controller und Daten aus DB

Beitragvon heohni » Mi 9. Feb 2011, 09:31

OK, bisschen doof ausgedrückt...

Person belongsTo Gruppe.

Wenn ich jetzt die Person editiere, möchte ich auch die Gruppe ändern können.
Und damit tue mich derzeit schwer...

Vielleicht um 3 Ecken herum gedacht:
im model Gruppe erstelle ich eine
Code: Alles auswählen

function listGroups(){
        $listgroups = $this->Group->find('list', array('fields'=>array('Group.id', 'Group.name'), 'recursive'=>-1));
        if(isset($this->params['requested'])) {
             return $listgroups;
        }
    }
 


Und in der Person edit.ctp hab ich
Code: Alles auswählen

$listgroups = $this->requestAction('groups/listGroups');
echo $form->input('group',array('options'=>$listgroups));
 


Nur glaube ich nicht, das das die Lösung ist...

Zum einen hat requestAction nicht den besten Ruf (performance technisch) und zum anderen habe ich das Problem, das ich nicht den in der DB hinterlegten Wert für diese Person als 'selected' setzten kann, bzw. nicht weiß, wie ich das machen kann?

Desweiteren habe ich das Problem, das ich gerne als Text außerhalb des Forumlars den Namen der Person ausgeben möchte, dessen Datensatz jetzt bearbeitet wird, wie kann ich das machen?
Mit
Code: Alles auswählen
$this->data = $this->User->read(NULL, $id);

kann ich meinen Datensatz in mein Formular übergeben, aber wie gebe ich Teile des Datensatzes als Text aus?
heohni
 
Beiträge: 42
Registriert: Sa 29. Jan 2011, 18:58

Re: Anfänger Frage zum Thema Controller und Daten aus DB

Beitragvon euromark » Mi 9. Feb 2011, 15:48

o_O
du solltest anfangen, dir die views erstmal "backen" zu lassen
dann wirst du schnell feststellen, dass du hier auf dem holzweg bist mit deinem ansatz
und es in der tat vieeel einfacher geht
euromark
 
Beiträge: 642
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.x
OS: Windows

Re: Anfänger Frage zum Thema Controller und Daten aus DB

Beitragvon heohni » Mi 9. Feb 2011, 15:56

OK, ich schäme mich jetzt und stell mich in die Ecke :roll:
Vor lauter "probieren" hab ich den Wald vor lauter Bäumen nicht mehr gesehen!!

Aber! Eine Sache begreife ich nicht!!
Selbst wenn ich model, controller und view backe, passiert eine ganz komische Sache:

Meine Tabelle users enthällt eine 'group_id'. Diese kommt aus der groups Tabelle.
In den Views ist alles fein, aber bei add und edit, wird immer group_id = 1 gespeichert, EGAL welchen Wert ich aus der dropdown für die Gruppen wähle.

Gebe ich vor dem save(); ein print_r($this->data); aus, steht dort die "richtige" gewählte group_id.
Im INSERT statement landet aber immer die 1. Wie gesagt, egal was ich auswähle, übertragen (per post) wirds richtig, gespeichert wird immer = 1.

Kapier ich nicht, echt nicht....
heohni
 
Beiträge: 42
Registriert: Sa 29. Jan 2011, 18:58

Re: Anfänger Frage zum Thema Controller und Daten aus DB

Beitragvon euromark » Mi 9. Feb 2011, 16:20

ich schon^^

schau dir deine datenbank an
wetten du hast tinyint(1) als feldtyp ausgewählt?
euromark
 
Beiträge: 642
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.x
OS: Windows

Re: Anfänger Frage zum Thema Controller und Daten aus DB

Beitragvon heohni » Mi 9. Feb 2011, 16:25

OK, jetzt geh ich ne Runde in den Garten und lass mal einen Schrei los...... :?


DANKE!!!!!!
heohni
 
Beiträge: 42
Registriert: Sa 29. Jan 2011, 18:58

Re: Anfänger Frage zum Thema Controller und Daten aus DB

Beitragvon Flo » Fr 11. Feb 2011, 09:46

Das kenn ich, hatte mal das exakt selbe Problem und bin beinahe wahnsinnig geworden ;-)
Wobei ich in nem sehr grossen System arbeite, da kann sowas schonmal irgendwo passieren, darum kommt man nicht darauf das CakePHP tinyint(1) als boolean interpretiert, also 0/1 false/true...
Flo
 
Beiträge: 85
Registriert: Mi 11. Jun 2008, 20:48
Wohnort: Bielefeld
CakePHP-Version: 1.3
OS: Mac OSX 10.6


Zurück zu Controller

Wer ist online?

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

cron