Gewünscht wird jetzt aber, dass statt der ID des Benutzers seine E-Mail Adresse dort steht. Also so: http://www.test.de/admin/benutzeraccounts/edit/hp@test.de Genauso soll der View zum Editieren eines Benutzers über dessen E-Mail Adresse erreichbar sein.
Ich denke mal das geht über Routes, die in der Datei app/config/routes.php definiert sind. Allerdings weiß ich jetzt nicht, wie ich die gewünschte Route definieren muss. Wäre nett, wenn ihr mir dabei helfen könntet.
Also es müsste wohl irgendwie so aussehen:
- Code: Alles auswählen
- Router::connect('/admin/benutzeraccounts/edit/*', array('controller' => 'benutzeraccounts', 'action' => 'edit'))
Aber wie bekomme ich die Verknüpfung "Benutzer" -> E-Mail Adresse hin?
Ich meine, es müsste ungefähr so aussehen:
- Code: Alles auswählen
Allerdings funktioniert es nicht.
Anderer Weg über den Controller:
Wenn ich folgenden Code im Controller habe:
- Code: Alles auswählen
- function admin_edit($email = null)
{
echo "E-Mail: ".$email;
if ($user = $this->benutzeraccount->find($email))
{
$this->set('data', $user);
}
else
{
echo "Nicht gefunden";
}
}
und die Adresse lautet http://www.test.de/admin/benutzeraccounts/edit/hp@test.de dann gibt er mir zumindest schon mal die E-Mail Adresse aus. Allerdings findet er anscheinend den Datensatz nicht, weil wenn ich echo "E-Mail: ".$email auskommentiere, belibt die Seite leer - es passiert also gar nichts. Die Tabelle, in der er suchen soll heißt prefix_benutzeraccounts.