Eh? Am I being daft here, doesn't save() return true or false if the
save succeeds or fails regardless of the failure reason?

I have never had a save fail and my success logic run!

I only ever use:

if($this->ModelName->saveAll($this->data)) {
  // success logic
} else {
  // fail logic
}

Confused and bemused, Paul

On Oct 10, 10:38 am, "[email protected]"
<[email protected]> wrote:
> You should use is_array and is_empty to check your return value. Also i would 
> recommend to pass your return value to the view and look at it with 
> debug($updated);
>
> -flosky
>
> Tomfox Wiranata <[email protected]> schrieb:
>
> thanks for all the answers.
> i want to achieve this:
>
> whenever the save() process failed, not matter what the reason was (db
> connection, missing field in db, code error etc. etc.), I need to
> know!
>
> so i created a test case with a fake field that does not exist in my
> table, so i make sure that save() fails:
>
> $updates['Report']['fictionalField']= $new_status;
>
> now the data is not saved and i still get an unempty array returned!!
> and so my check
>
> updated = $this->Report->save($updates);
>
> if ($updated)
> {}
>
> returns true and i would think the saving worked.
>
> somehow i cannot catch that error!
>
> On Oct 10, 8:58 am, WebbedIT <[email protected]> wrote:
>
>
>
>
>
>
>
>
>
> > Model::save returns true or false and if it returns false the error
> > array is available in the model and view as $this->ModelName-
>
> > >invalidFields() and $this->validationErrors respectively.
>
> > What are you trying to achieve that requires more than this?
>
> > HTH, Paul.
>
> > On Oct 9, 11:52 am, euromark <[email protected]> wrote:
>
> > > i cant follow you
> > > wants your problem?
>
> > > if ($result) {}
> > > works as expected in your case
> > > NOT EMPTY ARRAY equals FALSE
>
> > > therefore you already have a valid check if the saving succeeded
>
> > > On 9 Okt., 11:48, Tomfox Wiranata <[email protected]> wrote:
>
> > > > hello andrewperk,
>
> > > > thanks for your help. i appreciate that. one question though:
>
> > > > what do i have to do to get a false?
> > > > because when i use made up database fields i still get a filled array
> > > > as a return. so in that case the saving failed and i still dont get a
> > > > false.....
>
> > > > is there maybe another way to check if saving succeeded?
>
> > > > thanks  a lot!!!!!
>
> > > > On 9 Okt., 02:21, andrewperk <[email protected]> wrote:
>
> > > > > I may have said that wrong, I think it returns two different things,
> > > > > if successful it will return an array if not I believe it just returns
> > > > > false.
>
> > > > > On Oct 8, 4:58 pm, andrewperk <[email protected]> wrote:
>
> > > > > > Your model's save method doesn't actually return a boolean, you can
> > > > > > just use the method call itself in a conditional, but it actually
> > > > > > returns an array. You could check if $updated is not empty I 
> > > > > > believe:
>
> > > > > > if (!empty($updated)) {
>
> > > > > > }
>
> > > > > > Or use the method call itself in a condition to see if the save was
> > > > > > successful:
>
> > > > > > if ($this->Report->save($updates)) {
>
> > > > > > }
>
> > > > > > On Oct 8, 8:30 am, Tomfox Wiranata <[email protected]> 
> > > > > > wrote:
>
> > > > > > > hi,
>
> > > > > > > i have a simple save()
>
> > > > > > > $updates['Report']['status']= $new_status;
> > > > > > > $updated = $this->Report->save($updates);
>
> > > > > > > now i want to check, if the saving was successful and echo the 
> > > > > > > result:
>
> > > > > > > if ($updated)
> > > > > > >                 {
> > > > > > >                                 $this->set('success', "ok");
> > > > > > >                                 
> > > > > > > $this->render('../elements/admin/success', 'ajax');
> > > > > > >                 }
> > > > > > >                 else
> > > > > > >                 {
>
> > > > > > >                         $this->set('success', "err");
> > > > > > >                         
> > > > > > > $this->render('../elements/admin/success', 'ajax');
> > > > > > >                 }
>
> > > > > > > so even if i change the field "status" to "doesntexist", which 
> > > > > > > makes
> > > > > > > the saving a fail,  i dont get the "err" as a callback.
> > > > > > > so i thought i should debug $updated to see what callback i get:
>
> > > > > > > Array
> > > > > > > (
> > > > > > >     [Report] => Array
> > > > > > >         (
> > > > > > >             [fk_post_id] => 205
> > > > > > >             [fk_user_id] => 74
> > > > > > >             [reason] => test
> > > > > > >             [description] => test
> > > > > > >             [created] => 2011-10-07 22:15:21
> > > > > > >             [id] => 44
> > > > > > >             [fk_reporting_user_id] => 74
> > > > > > >             [status] => pending
> > > > > > >         )
> > > > > > > more data ...
>
> > > > > > > so $updated returns an array. i was expecting "true" or "false" 
> > > > > > > ??? so
> > > > > > > confusing..
>
> > > > > > > what do i need to change?
>
> > > > > > > thanks sooo much ;)- Hide quoted text -
>
> > - Show quoted text -
>
> --
> Our newest site for the community: CakePHP Video 
> Tutorialshttp://tv.cakephp.org
> Check out the new CakePHP Questions sitehttp://ask.cakephp.organd help others 
> with their CakePHP related questions.
>
> To unsubscribe from this group, send email to
> [email protected] For more options, visit this group 
> athttp://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