Esempio n. 1
0
 /**
  * @param array $where
  * @param array $fields
  * @param null $order
  * @param null $direction
  * @param null $limit
  * @param null $page
  * @param array $joins
  * @param null $group
  * @return array
  */
 protected function _all($where = array(), $fields = array("*"), $order = null, $direction = null, $limit = null, $page = null, $joins = array(), $group = null)
 {
     $query = $this->connector->query()->from($this->table, $fields);
     foreach ($joins as $table => $values) {
         $query->join($table, $values['ON'], $values['fields']);
     }
     foreach ($where as $clause => $value) {
         if (is_array($value)) {
             if (isset($value[2])) {
                 $query->whereDate($clause, $value[0]);
             } elseif (isset($value[1])) {
                 $query->where($clause, $value[0], $value[1]);
             } else {
                 $query->where($clause, $value[0]);
             }
         } else {
             $query->where($clause, $value);
         }
     }
     if ($order != null) {
         $query->order($order, $direction);
     }
     if ($group != null) {
         $query->group($group);
     }
     if ($limit != null) {
         $query->limit($limit, $page);
     }
     $rows = array();
     $class = StringMethods::classNameWithoutNamespace(get_class($this));
     foreach ($query->all() as $row) {
         $rows[] = new $class($row);
     }
     return $rows;
 }