Re: DB_DataObject_FormBuilder and crossLinkExtraFields
| From: | Justin Patrin | 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:Almost certainly you didn't set up your primary key on the conference_session_time_slot correctly. -- Justin Patrinpublic $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?