Wednesday, April 27, 2011

Re: Validate from within a model

You dont need to use validates(), just set an error manually.

$this->invalidate('fields', 'Error message.');

Also, your approach is still wrong IMO. You should be doing all error
checking before any save functionality is triggered. In what scenario
will the image NOT copy/transfer? I have yet to ever run into that
problem.

On Apr 27, 12:31 pm, func0der <funco...@live.com> wrote:
> okay...i think i got it.
>
> It is part of the MVC pattern, isn't it?
>
> The model is NOT connected to the view or the helpers. These two are
> getting their data or the invalid error messages by the controller.
>
> Am i right here?
>
> On 27 Apr., 21:00, func0der <funco...@live.com> wrote:
>
>
>
>
>
>
>
> > I can re-save and delete, so why i shouldn't be able to revalidate?
>
> > The error message is also in the "validationErrors" variable but while
> > the output of the form there is no error message.
> > But why?
>
> > On 27 Apr., 20:38, Miles J <mileswjohn...@gmail.com> wrote:
>
> > > You can't validates() something after the model save has already
> > > happened. Use a behavior for validation or use my plugin.
>
> > >https://github.com/milesj/cake-uploader
>
> > > And an example model on how to use it.
>
> > >https://github.com/milesj/cake-uploader/blob/master/tests/models/uplo...
>
> > > On Apr 27, 11:18 am, func0der <funco...@live.com> wrote:
>
> > > > Hey guys,
>
> > > > i'm having a file upload here.
> > > > I'm using "afterSave" to place the uploaded file in the filesystem.
>
> > > >         function afterSave($created){
> > > >                 //get the entry id
> > > >                 $this->data['DataFile']['id'] = $this->getInsertId();
> > > >                 if(!$this->saveDataFile($this->data)){
> > > >                         $this->delete($this->data['DataFile']['id']);
> > > >                         $this->data['DataFile']['data_file'] = array();
> > > >                         $this->validates();
> > > >                 }
> > > >         }
>
> > > > "saveDataFile" is a function which tries to places the uploaded file
> > > > in the file system and returns false in case of copy fails.
>
> > > > If the copy should fail i delete the record from the database and set
> > > > the "data_file" index which normally cotains the uploaded file
> > > > information to an empty array. This is because i want the validation
> > > > to fail so the file upload field gets an error message while
> > > > rendering.
>
> > > > The problem now is that the upload form does NOT! contain the
> > > > validation error message for that particular field.
>
> > > > Do you know what i am doing wrong?
>
> > > > Greetings
> > > > func0der

--
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
cake-php+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php

No comments: