Re: Updating users in group edit view
I've read here that hasMany doesn't work with automagic forms automatically. So how to map, for example, checkboxes in the view file to each group_id of users of the data array in my case? Thanks, Ivan On Apr 2, 5:19 pm, Givano wrote: > Hi All! > > I hope you can help me, I've tried everything I could but it still not > working and should be very simple thing. > > I have Users table: > CREATE TABLE `users` ( > `id` int(11) unsigned NOT NULL auto_increment, > `username` varchar(50) collate utf8_unicode_ci NOT NULL, > `realname` varchar(150) collate utf8_unicode_ci default NULL, > `emailaddress` varchar(120) collate utf8_unicode_ci default NULL, > `location_id` int(11) unsigned NOT NULL, > `group_id` int(11) unsigned default NULL, > PRIMARY KEY (`id`) > ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ; > > and Groups table: > CREATE TABLE `groups` ( > `id` int(11) unsigned NOT NULL auto_increment, > `name` varchar(120) collate utf8_unicode_ci NOT NULL, > PRIMARY KEY (`id`) > ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; > > both Models are defined as > > class Group extends AppModel { > var $name = 'Group'; > var $hasMany = array('User'); > > } > > class User extends AppModel { > var $name = 'User'; > var $belongsTo = array('Group'); > > } > > and I have generated standard methods for controllers. > > My goal is to make edit view for group where I have multiple selection > of users with criteria (all users which have the same group_id as the > group I'm editing or have group_id is null) and on submit all selected > users should get id of this group assigned. > > Controller function edit: > function edit($id = null) { > if (!$id && empty($this->data)) { > $this->Session->setFlash(__('Invalid Group', true)); > $this->redirectBack(); > } > if (!empty($this->data)) { > if ($this->Group->save($this->data)) { > $this->Session->setFlash(__('The Group has > been saved', true)); > $this->redirectBack(); > } else { > $this->Session->setFlash(__('The Group could > not be saved. Please, > try again.', true)); > } > } > if (empty($this->data)) { > $this->data = $this->Group->read(null, $id); > } > $users= > $this->Group->User->find('list','fields'=>'User.realname'); > $this->set(compact('users')); > } > My view edit.ctp: > > create('Group');?> > > > pr($users); > echo $form->input('id'); > echo $form->input('name'); > echo $form->input('location_id'); > echo $form->input('User',array > ('type'=>'select','multiple'=>'checkbox')); > > ?> > > end('Submit');?> > > The Problem is that on submit only group object is saved, no changes > on user data. Please, please help me on it! > > TIA, > > Ivan --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "CakePHP" group. To post to this group, send email to cake-php@googlegroups.com 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?hl=en -~--~~~~--~~--~--~---
Updating users in group edit view
Hi All! I hope you can help me, I've tried everything I could but it still not working and should be very simple thing. I have Users table: CREATE TABLE `users` ( `id` int(11) unsigned NOT NULL auto_increment, `username` varchar(50) collate utf8_unicode_ci NOT NULL, `realname` varchar(150) collate utf8_unicode_ci default NULL, `emailaddress` varchar(120) collate utf8_unicode_ci default NULL, `location_id` int(11) unsigned NOT NULL, `group_id` int(11) unsigned default NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ; and Groups table: CREATE TABLE `groups` ( `id` int(11) unsigned NOT NULL auto_increment, `name` varchar(120) collate utf8_unicode_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; both Models are defined as class Group extends AppModel { var $name = 'Group'; var $hasMany = array('User'); } class User extends AppModel { var $name = 'User'; var $belongsTo = array('Group'); } and I have generated standard methods for controllers. My goal is to make edit view for group where I have multiple selection of users with criteria (all users which have the same group_id as the group I'm editing or have group_id is null) and on submit all selected users should get id of this group assigned. Controller function edit: function edit($id = null) { if (!$id && empty($this->data)) { $this->Session->setFlash(__('Invalid Group', true)); $this->redirectBack(); } if (!empty($this->data)) { if ($this->Group->save($this->data)) { $this->Session->setFlash(__('The Group has been saved', true)); $this->redirectBack(); } else { $this->Session->setFlash(__('The Group could not be saved. Please, try again.', true)); } } if (empty($this->data)) { $this->data = $this->Group->read(null, $id); } $users= $this->Group->User->find('list','fields'=>'User.realname'); $this->set(compact('users')); } My view edit.ctp: create('Group');?> input('id'); echo $form->input('name'); echo $form->input('location_id'); echo $form->input('User',array ('type'=>'select','multiple'=>'checkbox')); ?> end('Submit');?> The Problem is that on submit only group object is saved, no changes on user data. Please, please help me on it! TIA, Ivan --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "CakePHP" group. To post to this group, send email to cake-php@googlegroups.com 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?hl=en -~--~~~~--~~--~--~---
Help on updating users in group edit view (second post)
Hi All! I hope you can help me, I've tried everything I could but it still not working and should be very simple thing. I have Users table: CREATE TABLE `users` ( `id` int(11) unsigned NOT NULL auto_increment, `username` varchar(50) collate utf8_unicode_ci NOT NULL, `realname` varchar(150) collate utf8_unicode_ci default NULL, `emailaddress` varchar(120) collate utf8_unicode_ci default NULL, `location_id` int(11) unsigned NOT NULL, `group_id` int(11) unsigned default NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ; and Groups table: CREATE TABLE `groups` ( `id` int(11) unsigned NOT NULL auto_increment, `name` varchar(120) collate utf8_unicode_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; both Models are defined as class Group extends AppModel { var $name = 'Group'; var $hasMany = array('User'); } class User extends AppModel { var $name = 'User'; var $belongsTo = array('Group'); } and I have generated standard methods for controllers. My goal is to make edit view for group where I have multiple selection of users with criteria (all users which have the same group_id as the group I'm editing or have group_id is null) and on submit all selected users should get id of this group assigned. Controller function edit: function edit($id = null) { if (!$id && empty($this->data)) { $this->Session->setFlash(__('Invalid Group', true)); $this->redirectBack(); } if (!empty($this->data)) { if ($this->Group->save($this->data)) { $this->Session->setFlash(__('The Group has been saved', true)); $this->redirectBack(); } else { $this->Session->setFlash(__('The Group could not be saved. Please, try again.', true)); } } if (empty($this->data)) { $this->data = $this->Group->read(null, $id); } $users= $this->Group->User->find ('list','fields'=>'User.realname'); $this->set(compact('users')); } My view edit.ctp: create('Group');?> input('id'); echo $form->input('name'); echo $form->input('location_id'); echo $form->input('User',array ('type'=>'select','multiple'=>'checkbox')); ?> end('Submit');?> The Problem is that on submit only group object is saved, no changes on user data. Please, please help me on it! TIA, Ivan PS: sorry for second post - not sure if the first was ok :) --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "CakePHP" group. To post to this group, send email to cake-php@googlegroups.com 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?hl=en -~--~~~~--~~--~--~---