Laravel spat ie QueryBuilder GET запрос поиска - PullRequest
3 голосов
/ 15 февраля 2020

Эй, я очень новичок, пожалуйста, прости этот вопрос. Я пытаюсь реализовать поиск и изо всех сил, чтобы отправить правильный запрос GET. Это работает, когда я вручную вставляю URL

http://127.0.0.1:8000/spsu?_token=kDRdTBZBwfO0l8UiFi1mcKmNOH7JEiNoxvUu7Fka&filter[name]=Peter&%5Bemail%5D=

, однако, когда я отправляю его через форму «filter [name]», отсутствует, и я не знаю, как его добавить.

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 width="10%"></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

В моей сети. php:

Route::get('/spsu', 'SearchController@spsu');

Я надеюсь, что кто-нибудь может помочь. С уважением!

1 Ответ

0 голосов
/ 15 февраля 2020

Вы должны использовать filter[<field>] в качестве имени ввода.

Например, вместо name='email' сделать его name='filter[email]'

...