diff --git a/Database/ActiveQuery.php b/Database/ActiveQuery.php index 9b1c9260..6f3ce537 100644 --- a/Database/ActiveQuery.php +++ b/Database/ActiveQuery.php @@ -188,20 +188,12 @@ class ActiveQuery extends Component */ public function plunk(int $size, callable $callback, $param = null, $offset = 0, $total = -1) { - if (!is_callable($callback, true)) { - return; - } - $data = $this->limit($offset, $size)->get(); - if ($param !== null) { - call_user_func($callback, $data, $param); - } else { - call_user_func($callback, $data); - } - if ($data->size() < $size) { - return; - } - unset($data); - $this->plunk($size, $callback, $param, $offset + $size, $total); + $pagination = new Pagination($this); + $pagination->setOffset($offset); + $pagination->setLimit($size); + $pagination->setMax($total); + $pagination->setCallback($callback); + $pagination->search($param); } /**