Overview
The SugarBean class supports fetching related information from the database.
Fetching Related Records
To fetch related records, you will need to load the relationship using the link.
//If relationship is loaded if ($bean->load_relationship($link)) { //Fetch related beans $relatedBeans = $bean->$link->getBeans(); }
An example of this is to load the contacts related to an account:
//Load Account $bean = BeanFactory::getBean('Accounts', $id); //If relationship is loaded if ($bean->load_relationship('contacts')) { //Fetch related beans $relatedBeans = $bean->contacts->getBeans(); }
Fetching a Parent Record
Fetching a parent record is very similar to fetching child records in that you will still need to load the relationship using the link.
//If relationship is loaded if ($bean->load_relationship($link)) { //Fetch related beans $relatedBeans = $bean->$link->getBeans(); $parentBean = false; if (!empty($relatedBeans)) { //order the results reset($relatedBeans); //first record in the list is the parent $parentBean = current($relatedBeans); } }
An example of this is to load a contact and fetch its parent account:
//Load Contact $bean = BeanFactory::getBean('Contacts', $id); //If relationship is loaded if ($bean->load_relationship('accounts')) { //Fetch related beans $relatedBeans = $bean->accounts->getBeans(); $parentBean = false; if (!empty($relatedBeans)) { //order the results reset($relatedBeans); //first record in the list is the parent $parentBean = current($relatedBeans); } }