get('size') ?: 10; $provinsi = Provinsi::query(); if ($request->has('search')) { $s = $request->get('search'); $s = strtolower($s); $provinsi->where(function($query) use ($s) { $query->whereRaw('lower(nama) like (?)',["%{$s}%"]); })->orWhere('kode', 'like', "%{$s}%"); } if ($request->has('sort')) { $order = $request->get('sort'); $d = substr($order, 0, 1); $dir = $d === '-' ? 'desc' : 'asc'; $order = $d === '-' ? substr($order, 1) : $order; $provinsi->orderBy($order, $dir); } $list = $provinsi->paginate($per_page); return response()->json($list); } public function create() { return view('admin.provinsi.create'); } public function store(Request $request) { $validated = $request->validate( [ 'nama' => 'required', 'kode' => 'required|digits:2', ], [ 'nama' => 'Nama Provinsi harus diisi', 'kode' => 'Kode Provinsi harus diisi dengan angka 2 digit', ] ); Provinsi::create($request->all()); return redirect()->route('admin.provinsi.index')->with('success', 'Data berhasil ditambahkan.'); } public function show(string $id) { $provinsi = Provinsi::findOrFail($id); return view('admin.provinsi.show', [ 'provinsi' => $provinsi ]); } public function edit(string $id) { $provinsi = Provinsi::findOrFail($id); return view('admin.provinsi.edit', [ 'provinsi' => $provinsi ]); } public function update(Request $request, string $id) { $provinsi = Provinsi::findOrFail($id); $validated = $request->validate( [ 'nama' => 'required', 'kode' => 'required|digits:2', ], [ 'nama' => 'Nama Provinsi harus diisi', 'kode' => 'Kode Provinsi harus diisi dengan angka 2 digit', ] ); $provinsi->update($request->all()); return redirect()->route('admin.provinsi.index')->with('success', 'Data berhasil diubah.'); } public function destroy(string $id) { $provinsi = Provinsi::findOrFail($id); $provinsi->delete(); return redirect()->route('admin.provinsi.index')->with('success', 'Data berhasil dihapus.'); } }