for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
/**
* @copyright Copyright (c) Flipbox Digital Limited
* @license https://flipboxfactory.com/software/force/license
* @link https://www.flipboxfactory.com/software/force/
*/
namespace flipbox\craft\salesforce\criteria;
use flipbox\craft\ember\helpers\SiteHelper;
use flipbox\craft\salesforce\records\ObjectAssociation;
use Flipbox\Salesforce\Criteria\IdAttributeTrait;
* @author Flipbox Factory <[email protected]>
* @since 1.1.0
trait IdAttributeFromElementTrait
{
use IdAttributeTrait;
* @return int|null
abstract public function getFieldId();
abstract public function getElementId();
abstract public function getSiteId();
* @return string|null
public function findId()
if (null === $this->id) {
$this->id = $this->resolveId();
}
return $this->id;
protected function resolveId()
$fieldId = $this->getFieldId();
$elementId = $this->getElementId();
if (null === $fieldId || null === $elementId) {
return null;
if (!$objectId = ObjectAssociation::find()
->select(['objectId'])
->field($fieldId)
->element($elementId)
->siteId(SiteHelper::ensureSiteId($this->getSiteId()))
->scalar()) {
return (string)$objectId;