Laravel spatie QueryBuilder GET 请求搜索
Posted
技术标签:
【中文标题】Laravel spatie QueryBuilder GET 请求搜索【英文标题】:Laravel spatie QueryBuilder GET request search 【发布时间】:2020-05-30 23:12:15 【问题描述】:嘿,我是新手,请原谅这个问题。我正在尝试实施搜索并努力发送正确的 GET 请求。当我手动输入 URL 时它可以工作
http://127.0.0.1:8000/spsu?_token=kDRdTBZBwfO0l8UiFi1mcKmNOH7JEiNoxvUu7Fka&filter[name]=Peter&%5Bemail%5D=
但是,当我通过表单“过滤器[名称]”发送它时,我不知道如何添加它。
http://127.0.0.1:8000/spsu?_token=kDRdTBZBwfO0l8UiFi1mcKmNOH7JEiNoxvUu7Fka&name=Peter&%5Bemail%5D=
这是我的 SearchController.php:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\User;
use Spatie\QueryBuilder\QueryBuilder;
class SearchController extends Controller
public function __construct()
$this->middleware('auth');
public function spsu()
$users = QueryBuilder::for(User::class)
->allowedFilters(['name', 'email'])
->get();
return view('suche', compact('users'));
这是刀片文件:
@extends('layouts.app')
@section('content')
<div id="main-content" class="col-12">
<div class="col-md-6 text-right">
<form action="/spsu" method="GET" class="form-inline">
@csrf
<div class="form-group">
<input type="text" class="form-control" name="name" placeholder="Keyword">
</div>
<div class="form-group">
<input type="text" class="form-control" name="[email]" placeholder="Keyword">
</div>
<div class="form-group">
<button class="btn btn-dark" type="submit">Search</button>
</div>
</form>
</div>
<div class="table-responsive">
<table class="table table-hover">
<thead>
<tr>
<th>Detail</th>
<th ></th>
</tr>
</thead>
<tbody>
@forelse($users as $user)
<tr>
<td>
<u>
$user->name
</u>
<br>
<p>
$user->email
</p>
</td>
</tr>
@empty
<tr>
<td colspan="2" align="center">
Empty data
</td>
</tr>
@endforelse
</tbody>
</table>
</div>
</div>
@endsection
在我的 web.php 中:
Route::get('/spsu', 'SearchController@spsu');
我希望有人可以提供帮助。亲切的问候!
【问题讨论】:
【参考方案1】:您应该使用filter[<field>]
作为输入名称。
例如,将 name='email'
改为 name='filter[email]'
【讨论】:
我很高兴它有帮助。接受答案让别人知道。以上是关于Laravel spatie QueryBuilder GET 请求搜索的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 laravel 8 +jetstream + spatie 为注册用户分配角色
Spatie / Laravel cors在生产中的问题[重复]
它是如何工作的 ?使用 Spatie/laravel-cronless-schedule 自定义的 Laravel 时间表
Spatie/Newsletter:Laravel 5.6 中提供的 MailChimp 无效 MailChimp API 密钥