【问题标题】:Laravel 5 Pagination sort by from user inputLaravel 5 Pagination 根据用户输入排序
【发布时间】:2016-01-17 07:22:35
【问题描述】:

我希望用户可以选择按升序或降序对分页进行排序。我尝试了下面的代码,但我不知道如何插入选定的值。

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') );
    }

【问题讨论】:

    标签: php sorting laravel pagination


    【解决方案1】:

    访问 get 变量的推荐方法(如果您使用 Laravel 5)是通过依赖注入获取请求的实例。引用documentation

    通过依赖获取当前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');
    

    【讨论】:

    • 虽然我做了一些调整。这个想法和你的代码工作谢谢!
    【解决方案2】:

    我使用asc作为排序的默认值。

    在你看来:

    {!! $finding_tbl->appends(['sort' => Input::get('sort', 'asc')])->render() !!}
    

    在你的控制器中,使用 Laravel $request instance 或 Input facade 来获取查询字符串参数而不是全局数组。

    $sort = Input::get('sort', 'asc');
    

    或者(当你使用依赖注入时)

    public function index(Request $request) {
        # ...
        $sort = $request->get('sort', 'asc');
        # ...
    }
    

    【讨论】:

      猜你喜欢
      • 2021-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多