Yes, that's a much better way to do it -- just set it in request data. On Mon, Apr 16, 2012 at 4:19 AM, euromark <[email protected]> wrote: > @cricket > almost perfect - I would not pass the referer this way, though. creates > overhead > and then I don't think the else case inside the post() is necessary. > after a post the same post data will populate the inputs anyway. therefore > the Model.referer input should still have the same value. > no need to resend this variable to the view. > I also dont like to unnecessarily set defaults in the view. > > echo $this->Form->input('Model.referer'); > > public function add() { > > if ($this->request->is('post')) { > // validate ... > > if ($this->Model->save()) { > $referer = > !empty($this->request->data['Model']['referer']) > ? $this->request->data['Model']['referer'] > : '/'; // or some other fallback route of > your choice > > $this->redirect($referer); > } > } else { > $this->request->data['Model']['referer'] = $this->referer(); > } > } > > > you agree? > > > Am Montag, 16. April 2012 01:08:29 UTC+2 schrieb cricket: >> >> On first display of the form pass the referer to the view to add it to the >> form. >> >> echo $this->Form->input('Model.referer', array('value' => $referer)); >> >> public function add() { >> >> if ($this->request->is('post')) { >> >> $referer = isset($this->request->data['Model']['referer']) >> ? $this->request->data['Model']['referer'] >> : '/'; // or some other fallback route of >> your choice >> >> // validate ... >> >> if ($this->Model->save()) { >> >> $this->redirect($referer); >> } >> else { >> // flash msg, log, etc. >> $this->set(compact('referer')); >> } >> } >> else { >> $this->set('referer', $this->referer()); >> } >> } >> >> >> You have to use the else block to set the view var because if the save >> failed it would overwrite it to the empty form. Likewise, you need to >> create the $referer method var before attempting to save so that it's >> available either way (to redirect or reset the view var). >> >> On Sun, Apr 15, 2012 at 4:15 PM, Daniel <[email protected]> wrote: >> > I am using the following code to go back a page, but the problem is >> > that the action is an "add" one so it just goes back to an empty "add" >> > form: >> > >> > if ($this->request->is('post')) { >> > // blah blah ... >> > if ($this->Inemail->save($this->request->data)) { >> > // blah blah ... >> > $this->redirect($this->referer()); >> > >> > I think what I need to do is go back two pages. Is this possible? >> > >> > Thanks. >> > >> > -- >> > Our newest site for the community: CakePHP Video Tutorials >> > http://tv.cakephp.org >> > Check out the new CakePHP Questions site http://ask.cakephp.org and help >> > others with their CakePHP related questions. >> > >> > >> > To unsubscribe from this group, send email to >> > [email protected] For more options, visit this group >> > at http://groups.google.com/group/cake-php > > -- > Our newest site for the community: CakePHP Video Tutorials > http://tv.cakephp.org > Check out the new CakePHP Questions site http://ask.cakephp.org and help > others with their CakePHP related questions. > > > To unsubscribe from this group, send email to > [email protected] For more options, visit this group at > http://groups.google.com/group/cake-php
-- Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions. To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/cake-php
