Reputation: 167
I'm building a table with pagination using laravel tailwind. I can do search but it returns more than one value.
But in my database, I only have one value of that specific thing
here is my index.blade.php
@extends('admin.template')
@section('title', 'Countries List')
@section('content')
<main class="h-full pb-16 overflow-y-auto py-32">
<div class="container grid px-6 mx-auto">
<div class="w-full">
<form action="admin/countries/search" method="POST" role="search">
{{ csrf_field() }}
<div class="w-full input-group">
<input type="text" class="form-control search rounded-md h-10 dark:text-white dark:bg-gray-800"
name="q" placeholder="Search countries" value="{{ $q ? $q : '' }}">
<span class="input-group-btn">
<button type="submit"
class="btn btn-default rounded-md dark:text-white dark:bg-gray-800 px-2 py-2">
<i class="fa-solid fa-magnifying-glass"></i></span> search
</button>
</span>
</div>
</form>
</div>
<div class="w-full overflow-hidden rounded-lg shadow-xs mt-10">
<div class="w-full overflow-x-auto">
<table class="table-auto table-bordered dark:text-white dark:bg-gray-800 w-full">
<thead>
<tr>
<th scope="col" class="text-sm font-medium mx-auto text-center px-5 py-4">No</th>
<th scope="col" class="text-sm font-medium mx-auto text-center px-5 py-4">Name</th>
<th scope="col" class="text-sm font-medium mx-auto text-center px-5 py-4">iso_code</th>
</tr>
</thead>
@foreach ($countries as $key => $value)
<tbody class="text-center">
<tr class="{{ $key % 2 === 0 ? 'bg-gray-800' : 'bg-gray-900' }} py-5">
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium">{{ ++$key }}</td>
<td class="text-sm font-light px-6 py-4 whitespace-nowra">{{ $value->name }}</td>
<td class="text-sm font-light px-6 py-4 whitespace-nowra">{{ $value->iso_code }}</td>
</tr>
</tbody>
@endforeach
</table>
<div class="row">
<div class="col-md-12">
{{ $countries->links('pagination::tailwind') }}
</div>
</div>
</div>
</div>
</div>
</main>
@endsection
here is the web route
Route::any('/admin/countries/search', [AdminCountryController::class, 'Search'])->name('admin.countries.search');
and here is the controller part
public function Search()
{
$q = RequestFacade::get('q');
if ($q != "") {
$countries = Country::where('name', 'LIKE', '%' . $q . '%')->orWhere('iso_code', 'LIKE', '%' . $q . '%')->paginate(5)->setPath('');
if ($countries->total() > 0) {
$pagination = $countries->appends(array(
'q' => RequestFacade::get('q')
));
return view('admin.pages.countries.index')->with('countries', $countries)->with('q', $q)->with('pagination', $pagination);
}
}
return view('admin.pages.countries.index')->with('q', $q);
}
I need my website to only show one specific thing but not repeating
Upvotes: 1
Views: 138