Bezdepbonusu7Программирование: статьи и ответы

Функциональность поиска в Laravel

Архив Bezdepbonusu72 мин чтения

Здесь мы увидим, как реализовать функцию поиска в Laravel. мы будем искать данные в базе данных и отображать результаты поиска в таблице.

Форма поиска

Во-первых, давайте создадим форму для поля поиска,

<form action="/search" method="POST" role="search">
    {{ csrf_field() }}
    <div class="input-group">
        <input type="text" class="form-control" name="q"
            placeholder="Search users"> <span class="input-group-btn">
            <button type="submit" class="btn btn-default">
                <span class="glyphicon glyphicon-search"></span>
            </button>
        </span>
    </div>
</form>

Действие поиска

При нажатии кнопки поиска происходит переход к поиску маршрута, в котором присутствует логика выборки данных из базы данных,

Route::any('/search',function(){
    $q = Input::get ( 'q' );
    $user = User::where('name','LIKE','%'.$q.'%')->orWhere('email','LIKE','%'.$q.'%')->get();
    if(count($user) > 0)
        return view('welcome')->withDetails($user)->withQuery ( $q );
    else return view ('welcome')->withMessage('No Details found. Try to search again !');
});

эта логика ищет в таблице User имя и адрес электронной почты с вводом, который мы предоставляем, здесь мы используем оператор LIKE для поиска данных,
после получения данных данные отправляются в приветственное представление вместе с сообщением, когда результаты поиска не отображаются нашел.

Здесь вся логика записана в самом файле маршрутов, если мы хотим создать контроллер, мы можем это сделать, здесь только одна простая логика, поэтому мы не использовали контроллер.

Результаты поиска

Приветственный вид для отображения результатов поиска будет выглядеть так:

<div class="container">
    @if(isset($details))
        <p> The Search results for your query <b> {{ $query }} </b> are :</p>
    <h2>Sample User details</h2>
    <table class="table table-striped">
        <thead>
            <tr>
                <th>Name</th>
                <th>Email</th>
            </tr>
        </thead>
        <tbody>
            @foreach($details as $user)
            <tr>
                <td>{{$user->name}}</td>
                <td>{{$user->email}}</td>
            </tr>
            @endforeach
        </tbody>
    </table>
    @endif
</div>

Файл маршрутов выглядит так:

<?php
use App\User;
use Illuminate\Support\Facades\Input;
Route::get ( '/', function () {
    return view ( 'welcome' );
} );
Route::any ( '/search', function () {
    $q = Input::get ( 'q' );
    $user = User::where ( 'name', 'LIKE', '%' . $q . '%' )->orWhere ( 'email', 'LIKE', '%' . $q . '%' )->get ();
    if (count ( $user ) > 0)
        return view ( 'welcome' )->withDetails ( $user )->withQuery ( $q );
    else
        return view ( 'welcome' )->withMessage ( 'No Details found. Try to search again !' );
} );

для разных типов маршрутизации проверьте предыдущий пост о маршрутизации.

Теперь, когда кто-то запрашивает базу данных, мы можем видеть соответствующие результаты.

Посмотрите на скриншоты ниже,

Сообщение: https://justlaravel.com/search-functionality-laravel/



Функциональность поиска в Laravel - Просто Laravel
Здесь мы увидим, как реализовать функциональность поиска в laravel. мы выполним поиск данных в базе данных и покажем... justlaravel.com



YouTube: https://www.youtube.com/watch?v=RJqHwsr3Jhs

Рабочая демонстрация: https://demos.justlaravel.com/search-functionality-in-laravel



Функциональность поиска - justLaravel.com
Это живая демонстрация примера функциональности поиска приложения в laravel, которая описана в этом посте. Искать... demos.justlaravel.com



GitHub: https://github.com/avinashn/searchexamplelaravel



avinashn / searchxamplelaravel
searchxamplelaravel - Пример функции поиска в laravel. github.com



LaravelPHPSearchWeb DevelopmentProgramming

Похожие материалы

Статья из архива сайта: перевод и редактура материала сообщества разработчиков. Версии библиотек и инструментов могли измениться, сверяйтесь с официальной документацией.