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){
|
||||
$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 = [
|
||||
'title' => 'Pencarian',
|
||||
'page' => 'search',
|
||||
'data' => News::where('title', 'LIKE', '%'.$search.'%')
|
||||
->latest()
|
||||
->simplePaginate(12),
|
||||
'data' => News::query()
|
||||
->when($search, function ($query, $search) {
|
||||
return $query->where('title', 'LIKE', '%' . $search . '%');
|
||||
})
|
||||
->latest()
|
||||
->simplePaginate(12)
|
||||
->appends(['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>
|
||||
<!-- end page title -->
|
||||
<!-- 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="row">
|
||||
<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">
|
||||
<li class="grid-sizer"></li>
|
||||
@foreach ($data as $item)
|
||||
@forelse ($data as $item)
|
||||
<!-- start blog item -->
|
||||
<li class="grid-item">
|
||||
<div class="card border-0 border-radius-4px box-shadow-extra-large box-shadow-extra-large-hover">
|
||||
@ -44,18 +44,18 @@
|
||||
</div>
|
||||
</li>
|
||||
<!-- 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>
|
||||
</div>
|
||||
<div class="col-12 mt-4 d-flex justify-content-center">
|
||||
<ul class="pagination pagination-style-01 fs-13 fw-500 mb-0">
|
||||
<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 class="col-12 mt-2 d-flex justify-content-center">
|
||||
{{$data->links()}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user