Laravel 6 функция поиска с разведчиком и Алголией не работает - PullRequest
0 голосов
/ 25 февраля 2020

Я работаю над библиотечным приложением и хочу реализовать функцию поиска, чтобы пользователи могли искать книги по названиям. Мне удалось создать функцию поиска, и я могу видеть книги, но если я хочу что-то искать, я получаю 0 результатов. Не могли бы вы сказать мне, как я мог сделать правильные результаты отображаются?

Ниже мой код:

BookSearchController

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Book;

class BookSearchController extends Controller
{

    /**
     * Get the index name for the model.
     *
     * @return string
    */
    public function index(Request $request)
    {
        if($request->has('titlesearch')){
            $books = Book::search($request->titlesearch)
                ->paginate(6);
        }else{
            $books = Book::paginate(6);
        }
        return view('book-search',compact('books'));
    }


    /**
     * Get the index name for the model.
     *
     * @return string
    */
    public function create(Request $request)
    {
        $this->validate($request,['title'=>'required']);


        $books = Book::create($request->all());
        return back();
    }
}

book-search.blade. php

<!DOCTYPE html>
<html>
<head>
    <title>Book search</title>
    <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
</head>
<body>


<div class="container">
    <h2>Book search</h2><br/>


    <form method="POST" action="{{ route('create-book') }}" autocomplete="off">
        @if(count($errors))
            <div class="alert alert-danger">
                <strong>Whoops!</strong> There were some problems with your input.
                <br/>
                <ul>
                    @foreach($errors->all() as $error)
                    <li>{{ $error }}</li>
                    @endforeach
                </ul>
            </div>
        @endif


        <input type="hidden" name="_token" value="{{ csrf_token() }}">


        <div class="row">
            <div class="col-md-6">
                <div class="form-group {{ $errors->has('title') ? 'has-error' : '' }}">
                    <input type="text" id="title" name="title" class="form-control" placeholder="Enter Title" value="{{ old('title') }}">
                    <span class="text-danger">{{ $errors->first('title') }}</span>
                </div>
            </div>
            <div class="col-md-6">
                <div class="form-group">
                    <button class="btn btn-success">Create New Book</button>
                </div>
            </div>
        </div>
    </form>


    <div class="panel panel-primary">
      <div class="panel-heading">Book management</div>
      <div class="panel-body">
            <form method="GET" action="{{ route('books-lists') }}">


                <div class="row">
                    <div class="col-md-6">
                        <div class="form-group">
                            <input type="text" name="titlesearch" class="form-control" placeholder="Enter Title For Search" value="{{ old('titlesearch') }}">
                        </div>
                    </div>
                    <div class="col-md-6">
                        <div class="form-group">
                            <button class="btn btn-success">Search</button>
                        </div>
                    </div>
                </div>
            </form>


            <table class="table table-bordered">
                <thead>
                    <th>Id</th>
                    <th>Book</th>
                    <th>Creation Date</th>
                    <th>Updated Date</th>
                </thead>
                <tbody>
                    @if($books->count())
                        @foreach($books as $key => $book)
                            <tr>
                                <td>{{ ++$key }}</td>
                                <td>{{ $book->title }}</td>
                                <td>{{ $book->created_at }}</td>
                                <td>{{ $book->updated_at }}</td>
                            </tr>
                        @endforeach
                    @else
                        <tr>
                            <td colspan="4">There are no data.</td>
                        </tr>
                    @endif
                </tbody>
            </table>
            {{ $books->links() }}
      </div>
    </div>


</div>


</body>
</html>
...