diff --git a/app/Http/Controllers/Homepage/LandingPageController.php b/app/Http/Controllers/Homepage/LandingPageController.php index ec8be93..2effba8 100644 --- a/app/Http/Controllers/Homepage/LandingPageController.php +++ b/app/Http/Controllers/Homepage/LandingPageController.php @@ -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 ]; diff --git a/public/assets/defaults/box.png b/public/assets/defaults/box.png new file mode 100644 index 0000000..92bdf64 Binary files /dev/null and b/public/assets/defaults/box.png differ diff --git a/resources/views/homepage/search.blade.php b/resources/views/homepage/search.blade.php index 7392042..cb7a82e 100644 --- a/resources/views/homepage/search.blade.php +++ b/resources/views/homepage/search.blade.php @@ -13,13 +13,13 @@ -
+
  • - @foreach ($data as $item) + @forelse ($data as $item)
  • @@ -44,18 +44,18 @@
  • - @endforeach + @empty +
    +
    + +
    + Data dengan keyword tersebut tidak ditemukan. +
    + @endforelse
-
- +
+ {{$data->links()}}