[英]Laravel 5 Pagination sort by from user input
我希望用戶可以選擇按升序或降序對分頁進行排序。 我嘗試了下面的代碼,但我不知道如何插入選定的值。
index.blade.php
<select name="orderby" id="orderby">
<option value="asc">Ascending</option>
<option value="desc">Descending</option>
</select>
{!! $finding_tbl->appends(['sort' => 'here'])->render() !!}
這是我在PagesController中的索引
public function index()
{
$sort =$_GET['sort'];
$finding_tbl = findings::orderBy('id', $sort)->paginate(5);
$finding_tbl->setPath('home');
return view('pages.index',compact('finding_tbl','sort') );
}
推薦的訪問get變量的方法(如果您使用Laravel 5)是通過依賴注入獲得請求的實例。 引用文檔 :
要通過依賴注入獲得當前HTTP請求的實例,您應該在控制器構造函數或方法上鍵入Illuminate \\ Http \\ Request類的提示。
在您的情況下,您的控制器將如下所示。
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
class PagesController extends Controller
{
public function index(Request $request)
{
$sort = $request->input('sort', 'asc');
$finding_tbl = findings::orderBy('id', $sort)->paginate(5);
$finding_tbl->setPath('home');
return view('pages.index',compact('finding_tbl','sort') );
}
}
一旦有了實例,就可以像下面這樣訪問任何輸入變量(GET / POST):
$sort = $request->input('sort');
如果需要為不存在的變量定義默認值,則可以將其作為第二個參數傳遞。
$sort = $request->input('sort', 'asc');
我使用asc
作為排序的默認值。
您認為:
{!! $finding_tbl->appends(['sort' => Input::get('sort', 'asc')])->render() !!}
在您的控制器中,使用Laravel $request
實例或Input
Facade來獲取查詢字符串參數,而不是全局數組。
$sort = Input::get('sort', 'asc');
或者 (當您使用依賴項注入時)
public function index(Request $request) {
# ...
$sort = $request->get('sort', 'asc');
# ...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.