chore: add validation
chore: add info when search data not found
This commit is contained in:
parent
a7f97d64ab
commit
7cd72f7f0f
@ -28,14 +28,27 @@ public function index(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function search(Request $request){
|
public function search(Request $request){
|
||||||
$search = $request->input('search');
|
|
||||||
|
$request->validate([
|
||||||
|
'search' => 'nullable|string|max:255|regex:/^[a-zA-Z0-9\s]+$/'
|
||||||
|
], [
|
||||||
|
'search.string' => 'Pencarian harus berupa teks.',
|
||||||
|
'search.max' => 'Pencarian tidak boleh lebih dari 255 karakter.',
|
||||||
|
'search.regex' => 'Pencarian hanya boleh mengandung huruf, angka, dan spasi.'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$search = trim($request->input('search'));
|
||||||
|
|
||||||
$data = [
|
$data = [
|
||||||
'title' => 'Pencarian',
|
'title' => 'Pencarian',
|
||||||
'page' => 'search',
|
'page' => 'search',
|
||||||
'data' => News::where('title', 'LIKE', '%'.$search.'%')
|
'data' => News::query()
|
||||||
->latest()
|
->when($search, function ($query, $search) {
|
||||||
->simplePaginate(12),
|
return $query->where('title', 'LIKE', '%' . $search . '%');
|
||||||
|
})
|
||||||
|
->latest()
|
||||||
|
->simplePaginate(12)
|
||||||
|
->appends(['search' => $search]),
|
||||||
'search' => $search
|
'search' => $search
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
BIN
public/assets/defaults/box.png
Normal file
BIN
public/assets/defaults/box.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 28 KiB |
@ -13,13 +13,13 @@
|
|||||||
</section>
|
</section>
|
||||||
<!-- end page title -->
|
<!-- end page title -->
|
||||||
<!-- start section -->
|
<!-- start section -->
|
||||||
<section class="pt-0 ps-11 pe-11 xl-ps-2 xl-pe-2">
|
<section class="pt-0 ps-11 pe-11 xl-ps-2 xl-pe-2 mb-5 mb-sm-10">
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<ul class="blog-grid blog-wrapper grid-loading grid grid-4col xl-grid-4col lg-grid-3col md-grid-2col sm-grid-2col xs-grid-1col gutter-extra-large">
|
<ul class="blog-grid blog-wrapper grid-loading grid grid-4col xl-grid-4col lg-grid-3col md-grid-2col sm-grid-2col xs-grid-1col gutter-extra-large">
|
||||||
<li class="grid-sizer"></li>
|
<li class="grid-sizer"></li>
|
||||||
@foreach ($data as $item)
|
@forelse ($data as $item)
|
||||||
<!-- start blog item -->
|
<!-- start blog item -->
|
||||||
<li class="grid-item">
|
<li class="grid-item">
|
||||||
<div class="card border-0 border-radius-4px box-shadow-extra-large box-shadow-extra-large-hover">
|
<div class="card border-0 border-radius-4px box-shadow-extra-large box-shadow-extra-large-hover">
|
||||||
@ -44,18 +44,18 @@
|
|||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<!-- end blog item -->
|
<!-- end blog item -->
|
||||||
@endforeach
|
@empty
|
||||||
|
<div style="text-align: center; margin-top: 2rem; margin-bottom: 3rem; padding-bottom: 10rem;">
|
||||||
|
<div>
|
||||||
|
<img src="{{asset('assets/defaults/box.png')}}" alt="" style="width: 4rem;">
|
||||||
|
</div>
|
||||||
|
Data dengan keyword tersebut tidak ditemukan.
|
||||||
|
</div>
|
||||||
|
@endforelse
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-12 mt-4 d-flex justify-content-center">
|
<div class="col-12 mt-2 d-flex justify-content-center">
|
||||||
<ul class="pagination pagination-style-01 fs-13 fw-500 mb-0">
|
{{$data->links()}}
|
||||||
<li class="page-item"><a class="page-link" href="#"><i class="feather icon-feather-arrow-left fs-18 d-xs-none"></i></a></li>
|
|
||||||
<li class="page-item"><a class="page-link" href="#">01</a></li>
|
|
||||||
<li class="page-item active"><a class="page-link" href="#">02</a></li>
|
|
||||||
<li class="page-item"><a class="page-link" href="#">03</a></li>
|
|
||||||
<li class="page-item"><a class="page-link" href="#">04</a></li>
|
|
||||||
<li class="page-item"><a class="page-link" href="#"><i class="feather icon-feather-arrow-right fs-18 d-xs-none"></i></a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user