Monday, May 4, 2009

Re: Validation messages and redirect issue

Thanks brian! I've decided to either just send the user to the user/
register page if an error occurs (which will maintain the messages) or
do as you suggested.


On May 4, 9:05 am, brian <bally.z...@gmail.com> wrote:
> Yes, the redirect is the problem because it forces a new request to
> the server. Validation messages are not the same as Session flash()
> messages in that they're not saved in the session and available at a
> later time.
>
> If you consider a typical action involving a form submission, if
> there's no save() (ie. because of invalid data) PHP will run through
> the method without reaching a redirect. Because of this, Cake will
> redisplay the action's view (the form). And FormHelper, in drawing up
> the things its responsible for, will catch and display any validation
> error messages. They're just view variables, in other words.
>
> Someone else might have a better idea, but I think the easiest
> solution would be to put the messages in the session and display them
> in the same manner as session flash messages. That is, go around
> FormHelper completely for displaying the errors. The downside is that
> the errors won't be displayed inline with the form but, if you're
> registration is on the homepage, I'm assuming there are only a couple
> of fields. Even if not, it might not be so bad.
>
> So, before redirection, check $this->User->validationErrors and, if
> not empty, use $this->Session->flash() to transport it to the next
> view. I suppose you'll need to loop through the array and grab
> whatever errors are present. Use
> die(debug($this->User->validationErrors)) in your action to see how
> its laid out.
>
> Does that make sense?
>
> On Mon, May 4, 2009 at 1:07 AM, Eric Martin <emarti...@gmail.com> wrote:
>
> > I'm having a problem getting validation messages to show up for a
> > register/sign-up form. I have the form on the home page, which is
> > accessed through a HomeController.
>
> > The register/sign-up form posts to the UsersController, register
> > function, which does the save. Regardless of the result, it redirects
> > back to the home page but the form validation messages are gone.
>
> > If I move the register/sign-up form to its own url/page, it all works,
> > so I'm pretty sure that the redirect is wiping out the validation
> > messages.
>
> > Being fairly new to CakePHP, I'd appreciate any suggestions on how to
> > make this work.
>
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "CakePHP" group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to cake-php+unsubscribe@googlegroups.com
For more options, visit this group at http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

No comments: