Fungsi carian merupakan satu fungsi asas yang perlu ada pada setiap aplikasi. Terdapat pelbagai cara boleh dilakukan untuk membangunkan fungsi carian dan disini kita akan lihat salah satu cara untuk membuat fungsi carian.
Cara yang ditunjukkan ini adalah konsep asas dan mungkin perlu diubah mengikut keperluan semasa.
Masukkan form berikut didalam fail blade (contoh: views/users/index.blade.php) . Contoh dibawah adalah raw form dan tidak mempunyai styling. Form tidak mempunyai sebarang parameter kerana akan “self submit“
<form> <input type="text" name="carian" class="form-control" placeholder="No KP atau nama"> <input type="text" name="office_id" class="form-control" placeholder="No KP atau nama"> <input type="text" name="department_id" class="form-control" placeholder="No KP atau nama"> <button type="submit" class="btn btn-secondary mt-3"><i class="fas fa-search"></i> Cari</button></form><table> <tr> <th>No</th> <th>Maklumat satu</th> </tr> @foreach ($data as $key => $user) <tr> <td>{{ ++$i }}</td> <td>{{ $data->maklumat }}</td> </tr> @endforeach</table>
Masukkan kod dibawah ke dalam app\Http\Controllers\UserController.php atau controller yang berkenaan
public function index(Request $request){ $data = $this->carian($request) ->where('office_id',auth()->user()->office_id) ->paginate(10); return view('users.index',compact('data')) ->with('i', ($request->input('page', 1) - 1) * 5); // for searched result numbering}public function carian($request){ $data = User::orderBy('id','DESC'); if ($request->filled('carian')) { $data->where('nokp','like','%'.$request->carian); } if ($request->filled('office_id')) { $data->where('office_id',$request->office_id); } if ($request->filled('department_id')) { $data->where('department_id',$request->department_id); } return $data;}
Pastikan route telah di daftarkan di routes\web.php
Route::get('/user', [UserController::class, 'index'])->name('user.index');
Jika anda temui sebarang bugs pada kod diatas, atau anda mempunyai tips yang menarik, jangan lupa komen dibawah