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 <giv...@gmail.com> 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: > <div class="groups form"> > <?php echo $form->create('Group');?> > <fieldset> > <legend><?php __('Edit Group');?></legend> > <?php > pr($users); > echo $form->input('id'); > echo $form->input('name'); > echo $form->input('location_id'); > echo $form->input('User',array > ('type'=>'select','multiple'=>'checkbox')); > > ?> > </fieldset> > <?php echo $form->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 -~----------~----~----~----~------~----~------~--~---