예제 #1
0
파일: result.php 프로젝트: ASDAFF/bxApiDocs
 public function fetch(\Bitrix\Main\Text\Converter $converter = null)
 {
     if ($this->trackerQuery != null) {
         $this->trackerQuery->restartQuery();
     }
     $dataTmp = $this->fetchRowInternal();
     if ($this->trackerQuery != null) {
         $this->trackerQuery->refinishQuery();
     }
     if (!$dataTmp) {
         return false;
     }
     $resultFields = $this->getResultFields();
     if ($resultFields !== null) {
         $data = array();
         foreach ($dataTmp as $key => $value) {
             $data[$resultFields[$key]["name"]] = $this->convertDataFromDb($value, $resultFields[$key]["type"]);
         }
     } else {
         $data = $dataTmp;
     }
     if (!empty($this->arSerializedFields)) {
         foreach ($this->arSerializedFields as $field) {
             if (isset($data[$field])) {
                 $data[$field] = unserialize($data[$field]);
             }
         }
     }
     if (!empty($this->arReplacedAliases)) {
         foreach ($this->arReplacedAliases as $tech => $human) {
             $data[$human] = $data[$tech];
             unset($data[$tech]);
         }
     }
     if ($this->fetchDataModifier != null) {
         $c = $this->fetchDataModifier;
         $data = $c($data);
     }
     if ($converter != null) {
         foreach ($data as $key => $val) {
             $data[$key] = $converter->encode($val, isset($data[$key . "_TYPE"]) ? $data[$key . "_TYPE"] : \Bitrix\Main\Text\Converter::TEXT);
         }
     }
     return $data;
 }
예제 #2
0
 /**
  * Fetches one row of the query result and returns it in the associative array of converted data or false on empty data.
  *
  * @param \Bitrix\Main\Text\Converter $converter Optional converter to encode data on fetching.
  *
  * @return array|false
  */
 public function fetch(\Bitrix\Main\Text\Converter $converter = null)
 {
     $data = $this->fetchRaw();
     if (!$data) {
         return false;
     }
     if ($this->converters) {
         foreach ($this->converters as $field => $convertDataModifier) {
             $data[$field] = call_user_func_array($convertDataModifier, array($data[$field]));
         }
     }
     if ($this->serializedFields) {
         foreach ($this->serializedFields as $field) {
             if (isset($data[$field])) {
                 $data[$field] = unserialize($data[$field]);
             }
         }
     }
     if ($this->replacedAliases) {
         foreach ($this->replacedAliases as $tech => $human) {
             $data[$human] = $data[$tech];
             unset($data[$tech]);
         }
     }
     if ($this->fetchDataModifiers) {
         foreach ($this->fetchDataModifiers as $fetchDataModifier) {
             $result = call_user_func_array($fetchDataModifier, array(&$data));
             if (is_array($result)) {
                 $data = $result;
             }
         }
     }
     if ($converter != null) {
         foreach ($data as $key => $val) {
             $data[$key] = $converter->encode($val, isset($data[$key . "_TYPE"]) ? $data[$key . "_TYPE"] : \Bitrix\Main\Text\Converter::TEXT);
         }
     }
     return $data;
 }