Are you trying to add a new but existing pair of (attendance, member)
to the join Table? The data in the join table must be unique, and
there is a key in the association array for the purpose of having the
pair of the 2 foreign keys unique in the table (like a composite key).
Maybe you are trying to add an existing pair of foreign Keys, and
CakePHP is deleting the past one to have the nwe one.

On Sep 23, 9:39 pm, Andre <[EMAIL PROTECTED]> wrote:
> I'm doing a Member, Attendance project for church with the following
> schema below:
> And I'm able to save from both end member, and attendance, but the how
> do I deal with attendances_members.offering on the link table.
> I'm able to show it in the view and save, but if I edit attendance,
> the link record is recreated and the previously populated
> attendances_members.offering is gone.
>
> Please help.
>
> create table members (
>    id int not null auto_increment primary key,
>    first_name varchar(40) not null,
>    last_name varchar(40) not null,
>    date_of_birth date
> );
>
> create table attendances (
>    id int not null auto_increment primary key,
>    attend_date date not null
> );
>
> create table attendances_members (
>    id int not null auto_increment primary key,
>    member_id int not null,
>    attendance_id int not null,
>    offering decimal(6,2),
>    primary key (id)
> );
>
> Model:
> attendance.php
> <?php
> /*
>  * Created on Sep 20, 2008
>  * By: susantan
>  * File: attendance.php
>  *
>  */
>  class Attendance extends AppModel {
>         var $name = 'Attendance';
>         var $hasAndBelongsToMany = array('Member');
>  }
> ?>
>
> member.php:
> <?php
>
>  class Member extends AppModel {
>         var $name = 'Member';
>         var $hasAndBelongsToMany = array('Attendance');
>
>  }
> ?>
> Controllers:
> attendances_controller.php:
> <?php
> class AttendancesController extends AppController {
>
>         var $name = 'Attendances';
>         var $helpers = array('Html', 'Form');
>
>         function add() {
>                 if (!empty($this->data)) {
>                         $this->Attendance->create();
>                         if ($this->Attendance->save($this->data)) {
>                                 $this->Session->setFlash(__('The Attendance 
> has been saved',
> true));
>                                 $this->redirect(array('action'=>'index'));
>                         } else {
>                                 $this->Session->setFlash(__('The Attendance 
> could not be saved.
> Please, try again.', true));
>                         }
>                 }
>                 $members = $this->Attendance->Member-
>
> >find('list',array('fields'=>'Member.first_name'));
>
>                 $this->set(compact('members'));
>         }
> ?>
>
> members_controller.php:
> <?php
> class MembersController extends AppController {
>
>         var $name = 'Members';
>         var $helpers = array('Html', 'Form');
>
>         function add() {
>                 if (!empty($this->data)) {
>                         $this->Member->create();
>                         if ($this->Member->save($this->data)) {
>                                 $this->Session->setFlash(__('The Member has 
> been saved', true));
>                                 $this->redirect(array('action'=>'index'));
>                         } else {
>                                 $this->Session->setFlash(__('The Member could 
> not be saved.
> Please, try again.', true));
>                         }
>                 }
>                 $attendances = $this->Member->Attendance->find('list');
>                 $this->set(compact('attendances'));
>         }
>
> views:
> attendances/add.ctp:
> <div class="attendances form">
> <?php echo $form->create('Attendance');?>
>         <fieldset>
>                 <legend><?php __('Add Attendance ..');?></legend>
>         <?php
>                 echo $form->input('attend_date');
>                 echo 
> $form->input('Member',array('type'=>'select','multiple'=>'checkbox'));
>
>         ?>
>         </fieldset>
> <?php echo $form->end('Submit');?>
> </div>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to