You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Laravel的搜索表单中实现带筛选参数保留的分页功能

核心问题排查&修复方案

存在的3个核心错误

  1. 表单提交地址配置错误,提交到了无筛选逻辑的index方法,而非search方法
  2. 控制器未将筛选参数传递到视图,导致分页appends追加的参数为空
  3. 控制器中存在多余的else逻辑,会出现变量覆盖问题

分步修复代码

1. 修正控制器逻辑

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Contact;

class ContactController extends Controller
{
    // 可直接删除index方法,后续统一用search方法处理列表+筛选
    public function search(Request $request)
    {
        $query = Contact::query();
        // 批量提取所有筛选参数,后续统一传递到视图
        $filters = $request->only(['fullname', 'gender', 'email', 'created_at_start', 'created_at_end']);

        // 逐个应用筛选条件
        if (!empty($filters['fullname'])) {
            $query->where('fullname', 'like', "%{$filters['fullname']}%");
        }
        if (!empty($filters['gender'])) {
            $query->where('gender', $filters['gender']);
        }
        // 其余筛选条件按上述格式自行补充

        // 统一执行分页,删除原来冗余的else赋值逻辑
        $contacts = $query->paginate(10);

        // 将筛选参数一并传递到视图
        return view('admin/index', compact('contacts', 'filters'));
    }
}

2. 修正路由配置

删除冗余的index路由,统一用一个路由处理列表访问、筛选、分页:

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\ContactController;

Route::get('/', function () {
    return view('index');
});
// 合并原来的两个admin路由,统一绑定到search方法
Route::get('admin', [ContactController::class, 'search'])->name('admin.search');

3. 修正前端表单&分页代码

GET请求不需要@csrf,同时修改分页参数追加逻辑:

<form class="search-box__items" action="{{ route('admin.search') }}" method="GET">
    <label class="search-box__items__label">
      Name
      <input name="fullname" type="text" class="search-box__item" value="{{ $filters['fullname'] ?? '' }}">
    </label>
    <!-- 其余筛选字段按上述格式补充value值 -->
    <input type="submit" value="Search">
</form>
<div class="contacts">
    <div class="pagination">
      <!-- 批量追加所有筛选参数到分页链接 -->
      {{ $contacts->appends($filters)->links() }}
    </div>
    <div class="contacts-table">
      <!-- 询盘列表代码 -->
    </div>
  </div>

内容的提问来源于stack exchange,提问作者Takichee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 12:27:02