6.0.0-alpha10
▾
Tasks
New Task
Search
Photos
Wiki
▾
Tickets
New Ticket
Search
dev.horde.org
Toggle Alerts Log
Help
5/15/25
H
istory
A
ttachments
C
omment
W
atch
Download
Comment on [#14818] Rdo access problem in ONE_TO_ONE relationship
*
Your Email Address
*
Spam protection
Enter the letters below:
. .___..__ .__.. . | _/ | \| ||\/| |___./__.|__/|__\| |
Comment
> When using a ONE_TO_ONE relationship in Rdo I could not access a > related data field. I tracked the problem down to Base.php, function > __get(). Consider lines 122 to 136 where a SQL search for the > attached record is conducted: > > switch ($rel['type']) { > case Horde_Rdo::ONE_TO_ONE: > case Horde_Rdo::MANY_TO_ONE: > if (isset($rel['query'])) { > $query = $this->_fillPlaceholders($rel['query']); > $this->_fields[$field] = $m->findOne($query); > } elseif (!empty($this->{$rel['foreignKey']})) { > //$this->_fields[$field] = > $m->findOne($this->{$rel['foreignKey']}); > $this->_fields[$field] = > $m->findOne(array($rel['foreignKey'] => $this->{$rel['foreignKey']})); > if (empty($this->_fields[$field])) { > throw new Horde_Rdo_Exception('The referenced > object with key ' . $this->{$rel['foreignKey']} . ' does not exist. > Your data is inconsistent'); > } > } else { > $this->_fields[$field] = null; > } > break; > > For unknown reasons everything works for a MANY_TO_ONE relationship, > using the same code. > Anyway, I used the available information to define a more specific > search in line 129: > > $this->_fields[$field] = $m->findOne(array($rel['foreignKey'] => > $this->{$rel['foreignKey']})); > > and this made it work for all types of relationship.
Attachment
Watch this ticket
N
ew Ticket
M
y Tickets
S
earch
Q
uery Builder
R
eports
Saved Queries
Open Bugs
Bugs waiting for Feedback
Open Bugs in Releases
Open Enhancements
Enhancements waiting for Feedback
Bugs with Patches
Enhancements with Patches
Release Showstoppers
Stalled Tickets
New Tickets
Horde 5 Showstoppers