Re: saveField with invalid ID creates a blank record

2012-05-19 Thread Jimit Kapadya
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

2012-05-19 Thread AD7six


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

2012-05-19 Thread AD7six


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

2012-05-18 Thread Richard@Home
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