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 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