【发布时间】:2026-02-14 13:45:01
【问题描述】:
我正在尝试使用带有搜索功能的 laravel 分页。
到目前为止,我已经尝试过使用 laravel 分页进行实时搜索并且一直失败,以及使用分页进行正常搜索,我得到了更好的结果但仍然无法正常工作。
这是我上次尝试使用分页进行正常搜索的方法:
项目控制器:
public function index()
{
$projects = Project::paginate(6);
return view('dashboard.projects.index',['projects' => $projects]);
}
public function search(Request $request)
{
$q = $request->input('q');
if(!empty($q)){
//dd("search");
$projects = Project::where('name', 'LIKE', '%' . $q . "%")->orderBy('created_at','desc')->paginate(6)->setPath('');
$projects->appends(['q' => $request->input('q')]);
return view ( 'dashboard.projects.index')->with('projects',$projects);
}
return redirect('/dashboard/projects/');
}
dashboard.projects.index
<div class="container-fluid">
<div class="row section-primary">
@foreach($projects as $project)
<div class="col-12 col-md-4 mb-2">
<div class="card project h-100">
<div class="card-header">
<h4>{{$project->name}}</h4>
</div>
<div class="card-body">
<p><strong>Project Manager:</strong> {{$project->manager_name}}</p>
<p class="description">{{ substr($project->description, 0, 110) }}...</p>
<div class="display-flex">
<div><a href="">View</a></div>
<div><a href="{{url('/dashboard/projects/'. $project->id. '/edit')}}">Edit</a></div>
<div><a href="#">Members</a></div>
<div>
{!!Form::open(['action' => ['ProjectController@destroy', $project->id], 'method' => 'POST','class' => 'form-link'])!!}
{{Form::hidden('_method', 'DELETE')}}
{{Form::submit('Delete', ['class' => 'button-link'])}}
{!!Form::close()!!}
</div>
</div>
</div>
</div>
</div>
@endforeach
</div>
</div>
<div>
{!! $projects->links()!!}
</div>
当我转到仪表板/项目和分页工作时,代码工作正常。 搜索有效,但分页失败。 当我按下搜索按钮时,它首先进入仪表板/项目/搜索 然后,当我在分页上按第 2 页按钮时,它会转到仪表板/项目/搜索?q=project&page=2,这里它正在请求不相关的显示功能。
PS:任何对分页实时搜索的额外帮助都会非常棒。
【问题讨论】:
标签: laravel