예제 #1
0
 /**
  * Mount additional (not related to parent key) conditions, extended by child loaders
  * (HAS_MANY, BELONGS_TO).
  *
  * @param RecordSelector $selector
  * @return RecordSelector
  */
 protected function mountConditions(RecordSelector $selector)
 {
     //We only going to mount morph key as additional condition
     if (!empty($morphKey = $this->getKey(RecordEntity::MORPH_KEY))) {
         if ($this->isJoinable()) {
             $selector->onWhere($morphKey, $this->parent->schema[ORM::M_ROLE_NAME]);
         } else {
             $selector->where($morphKey, $this->parent->schema[ORM::M_ROLE_NAME]);
         }
     }
     return $selector;
 }
 /**
  * {@inheritdoc}
  */
 protected function createSelector()
 {
     //To prevent morph key being added as where
     $selector = new RecordSelector($this->orm, $this->getClass());
     return $selector->where($selector->primaryAlias() . '.' . $this->definition[RecordEntity::OUTER_KEY], $this->parent->getField($this->definition[RecordEntity::INNER_KEY], false));
 }