有個SQL的存取資料是使用DB-RAW SQL的寫法而不是ORM,如下
1 2 3 4 5 6 7 8 9 10 |
$sql = "SELECT projects.`id`, projects.`title`, projects.`description` FROM projects WHERE projects.`id` IN (?) GROUP BY projects.`id` ORDER BY projects.`id` ASC"; // results correctly in 3 rows, if I replace the ? directly with the string, so using NO BINDINGS $query = DB::select(DB::raw($sql)); |
不用ORM的寫法但又想使用Pagination的自動分頁便利功能,只好自己來了。
首先在Repository中先宣告
1 2 |
use Illuminate\Pagination\LengthAwarePaginator; use Illuminate\Pagination\Paginator; |
然後再自己把Paginator建起來
1 2 3 4 5 6 |
$query = DB::select( DB::raw($sql) ); $page = Paginator::resolveCurrentPage("page"); $perPage = $count; //實際每頁筆數 $offset = ($page * $perPage) - $perPage; $data = new LengthAwarePaginator(array_slice($query, $offset, $perPage, true), count($query), $perPage, $page, ['path' => Paginator::resolveCurrentPath()]); |
$page 就是整個查詢出來的data
您好,
我想請教原本URL上帶有參數「?test1=123&test2=456&testkey=789&page=1」
但要切換到第2頁時,原本URL帶的參數都沒了,回歸為「?page=2」
想請教版主如何在切換到下一頁時,保留原URL的參數,相當感謝。
您好,
不好意思,在您這請教後豁然開朗的找到解決辦法了!
依然相當感謝版主這篇文章的分享!
恭喜你 :)