簡體   English   中英

Laravel 5分頁來自用戶輸入的排序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM