我試圖在我的 Laravel 專案中排序后進行分頁,所以我做了這個方法,它對我的??資料進行排序,但是當我想查看下一個分頁表時,它顯示了這個錯誤
SQLSTATE[42S22]: Column not found: 1054 Unknown column '' in 'order clause'
SELECT * FROM `customers` ORDER BY `` DESC limit 3 OFFSET 3
我的方法
public function Sortfilter(Request $request)
{
$active = Customer::where('active','=','1')->count();
$inactive = Customer::where('active','=','0')->count();
$customer = Customer::query();
$customer = Customer::orderBy($request->filter,'desc')->paginate(3);
return view('customers.index', compact('customer','inactive','active'));
}
當我單擊下一步按鈕時,是否有保存 $request->filter 資料的方法
編輯
當我對資料進行排序時,URL 會發生這樣的變化:http://127.0.0.1:8000/sortCustomer?filter=phone&_token=9xw0q9MKa5ABZc4CwkLaPqf5ko4BhJ4ZaEk0VKYY
當我點擊分頁按鈕時,網址是這樣的:
http://127.0.0.1:8000/sortCustomer?page=2
uj5u.com熱心網友回復:
問題有時是你$request->filter是空的,所以當它為空時添加一個默認值可以解決這個問題。
public function Sortfilter(Request $request)
{
$active = Customer::where('active','=','1')->count();
$inactive = Customer::where('active','=','0')->count();
$customer = Customer::query();
$filter = $request->filter ?: 'created_at';
$customer = Customer::orderBy($filter,'desc')->paginate(3)>appends(['filter' => $request->filter]);
return view('customers.index', compact('customer','inactive','active'));
}
uj5u.com熱心網友回復:
我認為您在 orderBy 子句的第一個引數中傳遞了'' (null)。
請確認$request->filter引數中的值不為空,它應該是客戶表中的列名。
uj5u.com熱心網友回復:
在 Laravel 中,可以選擇將查詢字串值附加到分頁鏈接。
使用它,您的代碼可能如下所示:
public function Sortfilter(Request $request)
{
$active = Customer::where('active','=','1')->count();
$inactive = Customer::where('active','=','0')->count();
$customer = Customer::query();
$customer = Customer::orderBy($request->filter,'desc')->paginate(3)->withQueryString();
return view('customers.index', compact('customer','inactive','active'));
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/521861.html
標籤:拉拉维尔
上一篇:手繪地圖如何制作為電子地圖實作智慧導覽系統之切割瓦片圖
下一篇:【Odoo】產品共享庫存邏輯優化
