Alex Rivera | Logout

How to debug when CakePHP Model::save() doesn't attempt an INSERT

Asked 2009-02-19T18:16:51.247
22

I am having a bear of a time saving the simplest record from a model called ItemView:

if($this->save($this->data)) {
  echo 'worked';
} else {
  echo 'failed';
}

Where $this->data is:

Array
(
    [ItemView] => Array
        (
            [list_id] => 1
            [user_id] => 1
        )
)

And my table is:

CREATE TABLE IF NOT EXISTS `item_views` (
  `id` int(11) NOT NULL auto_increment,
  `list_id` int(11) NOT NULL,
  `user_id` int(11) default NULL,
  `user_ip` int(10) unsigned default NULL,
  `created` datetime NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED AUTO_INCREMENT=1 ;

Looking at the query dump in debug mode, Cake isn't even attempting an INSERT, so I have no idea how to debug.

Any help would be appreciated.

Edit
Report

2 Answers

25

Wow, two miserable hours of my life wasted.

Remember that your beforeSave() must return true!

answered 2009-02-19T18:32:02.220
1

It may be, Validations returns false.. You can check like

$this->Model->save($this->data, false);

Put false and check whether now data inserts, if it is then it is validation error

answered 2013-06-24T16:54:27.387

Your Answer