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

Reply via email to