Saving HABTM data from checkboxes

2009-01-16 Thread Tad

So I have Teams HABTM Areas, with the following in the Team model:

  var $hasAndBelongsToMany = array(
'Area' = array('className' = 'Area',
'joinTable' = 'areas_teams',
'foreignKey' = 'team_id',
'associationForeignKey' = 'area_id',
'unique' = false,
'order' = 'Area.name ASC',
)
  );

Adding/deleting teams and area relationships works properly from the
scaffolded actions+views, even when 'multiple' = 'checkbox' is added
to $options for $form-input('Area', ...). However, only with the edit
action, adding 'multiple' = 'checkbox' results in not being able to
save the relationship data in areas_teams. The data is being sent to
the view properly, and the right boxes are checked under 'Area';
changing these and submitting appears to succeed, but nothing is being
changed in the areas_teams table.

Here's the view for teams/edit:

div class=teams form
?php echo $form-create('Team');?
fieldset
legend?php __('Edit Team');?/legend
?php
  echo $form-input('id');
  echo $form-input('name');
  echo $form-input('Area', array('multiple' = 'checkbox'));
?
/fieldset
?php echo $form-end('Submit');?
/div

And the controller action:

  function edit($id = null) {
if (!$id  empty($this-data)) {
  $this-Session-setFlash(__('Invalid Team', true));
  $this-redirect(array('action'='index'));
}
if (!empty($this-data)) {
  if ($this-Team-save($this-data)) {
$this-Session-setFlash(__('The Team has been saved', true));
$this-redirect(array('action'='index'));
  } else {
$this-Session-setFlash(__('The Team could not be saved.
Please, try again.', true));
  }
}
if (empty($this-data)) {
  $this-data = $this-Team-read(null, $id);
}
$areas = $this-Team-Area-find('list');
$this-set(compact('areas'));
  }

Here's an example of data being returned in $this-data upon submit:

Array
(
[Team] = Array
(
[id] = 3
[name] = AV
)

[Area] = Array
(
[Area] = Array
(
[0] = 6
[1] = 8
[2] = 13
[3] = 14
[4] = 15
[5] = 16
[6] = 17
)

)

)

Any help is appreciated.

--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



Re: Saving HABTM data from checkboxes

2009-01-16 Thread Tad

Nevermind, it was a MySQL issue involving duplicate keys. Whoops on my
part.

--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---