function paginate($model, $options = array()) { $m = new Model(); $limit = preg_match("/LIMIT (\\d+) OFFSET (\\d+)/", $model->last_query, $matches); $limit = $matches[1]; $offset = $matches[2]; $page = $offset / $limit + 1; $query = preg_replace("/^SELECT (.*) FROM/", "SELECT COUNT(*) AS count FROM", $model->last_query); $query = preg_replace("/LIMIT (.*)\$/", "", $query); $m->find_by_sql($query); $pagination = new pagination(); $pagination->page = $page; $pagination->target = $options['target']; $pagination->items($m->fields['count']); $pagination->limit($limit); return $pagination->show(); }
/** * loginとencrypt_passwordを元に検索 * * @access public * @params string login * @params string password * @return object User **/ public function find_login($login, $encrypt_password) { return parent::find_by_sql('select * from users where login = ? and password = ? and deleted_at is NULL', array($login, $encrypt_password)); }