Empfehlungen: Erweiterte Suche

Datensatz über E-Mail Adresse editieren

Daten auslesen, verarbeiten und den Views übergeben

Datensatz über E-Mail Adresse editieren

Beitragvon Luckie » Mo 27. Jul 2009, 13:41

Wenn man im View auf "editieren" klickt in der Datensatzliste, dann bekommt man folgende URL: admin/benutzeraccounts/edit/49. Jetzt würde ich aber gerne den Benutzer über die URL editieren können, also so: admin/benutzeraccounts/edit/tu@test.net. Dazu habe ich folgendes im zugehörigen Controller geschrieben:
Code: Alles auswählen
function admin_edit($email = null)
    {      
        echo "E-Mail: ".$email;
        if ($user = $this->Benutzeraccount->find('first', array('conditions' => array('Benutzeraccount.email' => $email))))
        {          
            echo "<br>gefunden<br>";
            print_r($user);
            $this->set('data', $user);         
        }  
        else
        {
            echo "Nicht gefunden";
        }  
    }

Die E-Mail Adresse wird mir korrekt angezeigt, wenn ich sie ausgeben lasse, also kommt der Parameter schon mal korrekt an. "gefunden" wird auch korrekt ausgegeben und die Variable $user enthält auch die korrekten Daten. Nur bleiben die Formularfelder alle leer. Was stimmt da noch nicht?

Mittlerweile bin ich soweit:
Code: Alles auswählen
function admin_edit($param = null)
    {      
        echo "Parameter: ".$param."<br>";      
        if ($user = $this->Benutzeraccount->findByEmail($param))
        {                      
            print_r($user);
            //$this->set($user);
            //$this->set('data', $user);
            $this->set('id', $user->id);                   
        }  
        else if($user = $this->Benutzeraccount->findById($param))
        {
            $this->set('id', $param);
        }
        else
        {
            $this->Session->setFlash(__('Der Benutzer konnte nicht gefunden werden.', true), 'default', array(), 'error');
        }  
    }

Gebe ich die ID als Paramter in der URL an werden die Formularfelder ausgefüllt, aber nicht über die Mail Adresse, obwohl die Abfrage funktioniert und die Variable $user die korrekten Daten enthält. Im Code sieht man auch, was ich schon probiert habe.
Luckie
 
Beiträge: 115
Registriert: Fr 22. Mai 2009, 12:16
OS: Windows XP

Re: Datensatz über E-Mail Adresse editieren

Beitragvon Luckie » Di 28. Jul 2009, 08:42

Geschafft. Es musste heißen:
Code: Alles auswählen
$user["Benutzeraccount"]["id"]
Luckie
 
Beiträge: 115
Registriert: Fr 22. Mai 2009, 12:16
OS: Windows XP


Zurück zu Controller

Wer ist online?

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