Re: DB_DataObject_FormBuilder and crossLinkExtraFields

From: Date: Fri, 22 Sep 2006 23:48:31 +0000
Subject: Re: DB_DataObject_FormBuilder and crossLinkExtraFields
References: 1  Groups: php.pear.general 
Request: Send a blank email to pear-general+get-25215@lists.php.net to get a copy of this message
On 9/22/06, James Stewart <lists@jystewart.net> wrote:
Hi, I'm using DB_DO_FB for a conference management system which includes four tables: conference_session conference_time_slots conference_venues conference_session_time_slot The final table, conference_session_time_slot, connects a session with a time slot and a venue, and I have my conference_session DO set up with:
        public $fb_crossLinks = array(
             'table' => 'conference_session_time_slot',
             'fromField' => 'session_id',
             'toField' => 'time_slot'));
and in my conference_session_time_slot I have:
        public $fb_crossLinkExtraFields = array('location');
That generates a form with checkboxes for each time slot, and a select list of venues for each time slot. When I add a session to a new time slot everything works fine, with an entry being created for the appropriate time slot and location, but when I try to alter a location for an already selected time slot the update isn't completed and DB_DO_FB attempts to insert a new value in the database for just the location. eg. DataObjects_Conference_session_time_slot: QUERY: INSERT INTO conference_session_time_slot (location ) VALUES ( 6 ) where 6 is the value of the location I want to change to, but I expect something like: UPDATE conference_session_time_slot SET location = 6 WHERE id = X Looking through the code I can't see where DB_DO_FB actually works out which updates it's supposed to make for extra fields, so I'm not sure where to go next. Anyone got any ideas?
Almost certainly you didn't set up your primary key on the conference_session_time_slot correctly. -- Justin Patrin

« previous php.pear.general (#25215) next »