Re: saveField with invalid ID creates a blank record
Hello All, how to delete Multiple tables fields values in cakephp 2.0 -- 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+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php
Re: saveField with invalid ID creates a blank record
On Saturday, 19 May 2012 10:57:58 UTC+2, Jimit Kapadya wrote: Hello All, how to delete Multiple tables fields values in cakephp 2.0 I think hijacking 12 threads with exactly the same (incomplete/nonsense) question is enough. AD -- 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+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php
Re: saveField with invalid ID creates a blank record
On Friday, 18 May 2012 11:56:24 UTC+2, Richard@Home wrote: CakePHP 2: Not noticed this behaviour before, is it by design? (Seems odd if it is...) CREATE TABLE IF NOT EXISTS `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(32) NOT NULL, `password` varchar(64) NOT NULL, `is_active` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), UNIQUE KEY `username` (`username`), KEY `is_active` (`is_active`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ; (Notice in particular the NOT NULL flags on username password: Mysql doesn't enforce that - i.e. it won't error out if you try to insert a row without passing those values (just to clarify). class User extends AppModel { public function activate($id) { $this-User-id = $id; $this-User-saveField('is_active', 1); } } There's no validation in the above model - so cake isn't going to enforce the equivalent of NOT NULL either. With an empty table: $this-User-activate(1); Creates a new user with an id of 1, an empty string for username and password, and is_active = 1; I expected this to fail as User.id 1 doesn't exist. $this-User-activate(99); Creates a new user with an id of 2, an empty string for username and password, and is_active = 1; I expected this to fail as User.id 99 doesn't exist. Doesn't matter - you are calling save which will insert a row if it doesn't exist. The model doesn't implement any if it doesn't exist - it's an error logic. Even if I disregard that user 99 doesn't exist, I'd expect the new record to be created with an id of 99 (not 2) I wouldn't expect that either, but you're calling saveField - not (directly) save, since it doesn't exist it seems reasonable to not force the id - since the table definition is autoincrement. AD -- 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+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php
saveField with invalid ID creates a blank record
CakePHP 2: Not noticed this behaviour before, is it by design? (Seems odd if it is...) CREATE TABLE IF NOT EXISTS `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(32) NOT NULL, `password` varchar(64) NOT NULL, `is_active` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), UNIQUE KEY `username` (`username`), KEY `is_active` (`is_active`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ; (Notice in particular the NOT NULL flags on username password: class User extends AppModel { public function activate($id) { $this-User-id = $id; $this-User-saveField('is_active', 1); } } With an empty table: $this-User-activate(1); Creates a new user with an id of 1, an empty string for username and password, and is_active = 1; I expected this to fail as User.id 1 doesn't exist. $this-User-activate(99); Creates a new user with an id of 2, an empty string for username and password, and is_active = 1; I expected this to fail as User.id 99 doesn't exist. Even if I disregard that user 99 doesn't exist, I'd expect the new record to be created with an id of 99 (not 2) -- 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+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php