|
|
@@ -302,11 +302,16 @@ class Model
|
|
|
{
|
|
|
return $this->store->rollback();
|
|
|
}
|
|
|
- public function query($sql, $bind = [], $page = [])
|
|
|
+ public function query($sql, $bind = [], $options = [])
|
|
|
{
|
|
|
if (strpos($sql, '{table}')) {
|
|
|
$sql = str_replace('{table}', $this->config['table'], $sql);
|
|
|
}
|
|
|
+ $page = is_array($options) ? $options : [];
|
|
|
+ $method = $page['method'] ?? 'read';
|
|
|
+ if (isset($page['method'])) {
|
|
|
+ unset($page['method']);
|
|
|
+ }
|
|
|
if (isset($page['num'])) {
|
|
|
if (strpos($sql, 'limit')) {
|
|
|
$temp = explode('limit', $sql);
|
|
|
@@ -318,7 +323,7 @@ class Model
|
|
|
}
|
|
|
$sql .= ' limit ' . $limit;
|
|
|
}
|
|
|
- $result = $this->store->query($sql, $bind);
|
|
|
+ $result = $this->store->query($sql, $bind, $method);
|
|
|
if (isset($page['num']) && empty($page['page'])) {
|
|
|
$result = $result->fetchAll();
|
|
|
self::get(Paginator::class)->status(empty($result));
|