Esempio n. 1
0
 /**
  * Queries for has one relation fields with a link model to self
  * @param ModelQuery $query Query for the has many data
  * @param string $fieldName Name of the field which will contain the has many data
  * @param array $foreignKeys Array with ModelField objects
  * @param integer $id Primary key of the data which will contain the has many data
  * @return array Model query result for the has many field
  */
 private function queryHasManyWithLinkModelToSelf(ModelQuery $query, ModelMeta $meta, $fieldName, array $foreignKeys, $id)
 {
     $order = $meta->getRelationOrder($fieldName);
     if ($order != null) {
         $query->addOrder($order);
     }
     $result = array();
     $queryResult = $query->query();
     foreach ($queryResult as $data) {
         foreach ($foreignKeys as $foreignKey) {
             $foreignKey = $foreignKey->getName();
             if ($data->{$foreignKey}->id != $id) {
                 break;
             }
         }
         $result[$data->{$foreignKey}->id] = $data->{$key};
     }
     return $result;
 }