예제 #1
0
파일: Dao.php 프로젝트: tokushima/rhaco3
 /**
  * 検索を実行する
  * @return StatementIterator
  */
 public static final function find()
 {
     $args = func_get_args();
     $dao = new static();
     $query = new Q();
     $query->add($dao->__find_conds__());
     if (!empty($args)) {
         call_user_func_array(array($query, 'add'), $args);
     }
     $paginator = $query->paginator();
     if ($paginator instanceof \org\rhaco\Paginator) {
         if ($query->is_order_by()) {
             $paginator->order($query->in_order_by(0)->ar_arg1(), $query->in_order_by(0)->type() == Q::ORDER_ASC);
         }
         $paginator->total(call_user_func_array(array(get_called_class(), 'find_count'), $args));
         if ($paginator->total() == 0) {
             return array();
         }
     }
     return static::get_statement_iterator($dao, $query);
 }