. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU Affero General Public License version 3. * * In accordance with Section 7(b) of the GNU Affero General Public License version 3, * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ namespace Espo\ORM\DataLoader; use Espo\ORM\Entity; use Espo\ORM\EntityManager; class RDBLoader implements Loader { public function __construct( private EntityManager $entityManager, ) {} public function load(Entity $entity): void { $loaded = $this->entityManager->getEntityById($entity->getEntityType(), $entity->getId()); if (!$loaded) { return; } foreach ($loaded->getAttributeList() as $attribute) { if (!$loaded->has($attribute)) { continue; } $value = $loaded->get($attribute); if (!$entity->hasFetched($attribute)) { $entity->setFetched($attribute, $value); } if (!$entity->has($attribute)) { $entity->set($attribute, $value); } } } }