我希望用户可以选择按升序或降序对分页进行排序。我尝试了下面的代码,但我不知道如何插入所选的值。
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') );
}
答案 0 :(得分:3)
访问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');
答案 1 :(得分:1)
我使用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');
# ...
}