Esempio n. 1
0
 private function appendRelatedRecordJoinCond($foreignClassName, ARFilter $filter)
 {
     $foreignSchema = self::getSchemaInstance($foreignClassName);
     $callerClassName = get_class($this);
     $referenceFieldName = "";
     $id = $this->getID();
     if (is_null($id)) {
         throw new ARException("Related record set can be loaded only by a persisted object (so it must have a record ID)");
     }
     foreach ($foreignSchema->getForeignKeyList() as $name => $field) {
         if ($field->getForeignClassName() == $callerClassName) {
             $filter->mergeCondition(new EqualsCond(new ARFieldHandle($foreignClassName, $name), $id));
             return;
         }
     }
     throw new ARSchemaException("Reference from " . $foreignClassName . " to " . $callerClassName . " is not defined in schema");
 }