예제 #1
0
 /**
  * Modified version that default to do the same as the original, but allows via a
  * third parameter to retrieve the result as array instead of active records. This
  * solves a joining problem. Usage via findAllAsArray method
  *
  * Performs the actual DB query and populates the AR objects with the query result.
  * This method is mainly internally used by other AR query methods.
  * @param CDbCriteria $criteria the query criteria
  * @param boolean $all whether to return all data
  * @return mixed the AR objects populated with the query result
  * @since 1.1.7
  */
 protected function query($criteria, $all = false, $asAR = true)
 {
     if ($asAR === true) {
         return parent::query($criteria, $all);
     } else {
         $this->beforeFind();
         $this->applyScopes($criteria);
         if (!$all) {
             $criteria->limit = 1;
         }
         $command = $this->getCommandBuilder()->createFindCommand($this->getTableSchema(), $criteria);
         //For debug, this command will get you the generated sql:
         //echo $command->getText();
         return $all ? $command->queryAll() : $command->queryRow();
     }
 }