/** * 検索を実行する * @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); }