Empfehlungen: Erweiterte Suche

Entfernen der id aus url nach submit

Daten auslesen, verarbeiten und den Views übergeben

Entfernen der id aus url nach submit

Beitragvon Mathias » Di 1. Nov 2011, 02:27

Hallöchen,

ich bin heute über ein kleines Problem gestolpert, was ich nicht lösen kann.
Mein UsersController besitzt die Funktion editAccount. Die Funktion beinhaltet die Logik zum Speichern der Kontoinformationen eines Nutzers. Die Funktion edit wird anders verwendet.
Ich hab nun eine Route /account für /users/editAccount erstellt. Die id des Nutzers wird aus der Session gelesen und für das Formular verwendet, also wird keine id in der URL übergeben. Sobald ich aber die Daten per submit an den Controller sende, der Daten speichert (oder auch nicht), dann hängt cake nach dem redirect automatisch die User id an.
Dann habe ich auch folgende URL in der Adressleiste zu stehen: /users/editAccount/1.
Somit greift auch nicht mehr die Route-Regel.

Jedenfalls möchte ich, dass in dem Fall keine id angehängt wird. Zumal meine Funktion auch keinen Parameter erwartet.

UsersController
Code: Alles auswählen
    function editAccount() {
        $this->User->recursive = 0;
        if (!empty($this->data)) {
            if (empty($this->data['User']['new_password'])) {
                unset($this->User->validate['new_password']);
            } else {
                $this->data['User']['password'] = $this->Auth->password($this->data['User']['new_password']);
            }
            if ($this->User->save($this->data)) {
                $this->Session->setFlash(__('Your settings have been saved.', true), 'default', array('class' => 'success'));
            } else {
                $this->Session->setFlash(__('Your settings could not be saved.', true), 'default', array('class' => 'failure'));
            }
        }
        if (empty($this->data)) {
            $this->data = $this->User->read(null, $this->Session->read('Auth.User.id'));
        }
    }


Ds Auslesen von $this->params zeigt, dass [pass] das Paar [0] => 1 und [url] das Paar [url] => users/editAccount/1 nach dem Absenden hat. Warum wird die id angehangen?
Vielleicht weiß ja jemand Rat. Die Internetsuche hat leider nichts brauchbares ausgespuckt.
cheers
Benutzeravatar
Mathias
 
Beiträge: 225
Registriert: Mi 4. Jun 2008, 22:30
Wohnort: Berlin
CakePHP-Version: 1.3.x
OS: OS X 10.6.x

Re: Entfernen der id aus url nach submit

Beitragvon euromark » Mi 2. Nov 2011, 14:20

euromark
 
Beiträge: 642
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.x
OS: Windows

Re: Entfernen der id aus url nach submit

Beitragvon Mathias » Mi 2. Nov 2011, 20:58

merci
cheers
Benutzeravatar
Mathias
 
Beiträge: 225
Registriert: Mi 4. Jun 2008, 22:30
Wohnort: Berlin
CakePHP-Version: 1.3.x
OS: OS X 10.6.x

Re: Entfernen der id aus url nach submit

Beitragvon euromark » Do 3. Nov 2011, 13:21

in 2.0 ist das thema endlich geschichte ;)
euromark
 
Beiträge: 642
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.x
OS: Windows

Re: Entfernen der id aus url nach submit

Beitragvon Mathias » Do 3. Nov 2011, 20:49

Hast du ja auf deiner Seite geschrieben. Ich muss mich mal das changelog arbeiten. Hoffentlich muss ich nicht zu sehr meine app umschreiben.

Du bist bestimmt schon umgestiegen, oder?
cheers
Benutzeravatar
Mathias
 
Beiträge: 225
Registriert: Mi 4. Jun 2008, 22:30
Wohnort: Berlin
CakePHP-Version: 1.3.x
OS: OS X 10.6.x

Re: Entfernen der id aus url nach submit

Beitragvon euromark » Fr 4. Nov 2011, 02:25

sagen wir so, ich kämpfe täglich noch damit ;)
2.0 scheint noch nich wirklich stable zu sein. zumindest mit spezielleren environments...

außerdem hab ich 500 plugin elemente (helpers, behaviors, und co inklusive tests).
das ist verdammt viel zu updaten und tweaken.
euromark
 
Beiträge: 642
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.x
OS: Windows


Zurück zu Controller

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron