validasi informasi
This commit is contained in:
parent
00b26280c2
commit
2cfc54f567
|
|
@ -6,17 +6,15 @@
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use App\Models\Informasi;
|
use App\Models\Informasi;
|
||||||
use Illuminate\Support\Facades\Storage;
|
use Illuminate\Support\Facades\Storage;
|
||||||
use Illuminate\Support\Facades\Validator;
|
|
||||||
|
|
||||||
class InformasiController extends Controller
|
class InformasiController extends Controller
|
||||||
{
|
{
|
||||||
// Menampilkan semua informasi
|
|
||||||
public function index(Request $request)
|
public function index(Request $request)
|
||||||
{
|
{
|
||||||
$search = $request->search;
|
$search = $request->search;
|
||||||
|
|
||||||
$informasi = Informasi::when($search, function ($query) use ($search) {
|
$informasi = Informasi::when($search, function ($query) use ($search) {
|
||||||
$query->where('judul', 'like', '%' . $search . '%');
|
$query->where('judul_informasi', 'like', '%' . $search . '%');
|
||||||
})
|
})
|
||||||
->orderBy('tanggal_informasi', 'desc')
|
->orderBy('tanggal_informasi', 'desc')
|
||||||
->paginate(10);
|
->paginate(10);
|
||||||
|
|
@ -24,26 +22,56 @@ public function index(Request $request)
|
||||||
return view('admin.informasi.index', compact('informasi'));
|
return view('admin.informasi.index', compact('informasi'));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Form tambah informasi
|
|
||||||
public function create()
|
public function create()
|
||||||
{
|
{
|
||||||
return view('admin.informasi.create');
|
return view('admin.informasi.create');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Simpan informasi baru
|
// ================= VALIDASI =================
|
||||||
public function store(Request $request)
|
private function rules()
|
||||||
{
|
{
|
||||||
$validator = Validator::make($request->all(), [
|
return [
|
||||||
'kategori_informasi' => 'required|in:berita,pengumuman',
|
'kategori_informasi' => 'required|in:berita,pengumuman',
|
||||||
'judul_informasi' => 'required|string|max:255',
|
'judul_informasi' => 'required|string|max:255',
|
||||||
'isi_informasi' => 'required|string',
|
'isi_informasi' => 'required|string|min:10',
|
||||||
'tanggal_informasi' => 'required|date',
|
'tanggal_informasi' => 'required|date',
|
||||||
'gambar_informasi' => 'nullable|image|mimes:jpeg,png,jpg,gif|max:2048',
|
'gambar_informasi' => 'nullable|image|mimes:jpeg,png,jpg|max:2048',
|
||||||
]);
|
];
|
||||||
|
}
|
||||||
|
|
||||||
if ($validator->fails()) {
|
private function messages()
|
||||||
return redirect()->back()->withErrors($validator)->withInput();
|
{
|
||||||
}
|
return [
|
||||||
|
'required' => ':attribute wajib diisi.',
|
||||||
|
'in' => ':attribute tidak valid.',
|
||||||
|
'string' => ':attribute harus berupa teks.',
|
||||||
|
'max' => ':attribute maksimal :max karakter.',
|
||||||
|
'min' => ':attribute minimal :min karakter.',
|
||||||
|
'date' => ':attribute harus berupa tanggal yang valid.',
|
||||||
|
'image' => ':attribute harus berupa gambar.',
|
||||||
|
'mimes' => ':attribute harus berformat jpeg, jpg, atau png.',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
private function attributes()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'kategori_informasi' => 'Kategori Informasi',
|
||||||
|
'judul_informasi' => 'Judul Informasi',
|
||||||
|
'isi_informasi' => 'Isi Informasi',
|
||||||
|
'tanggal_informasi' => 'Tanggal Informasi',
|
||||||
|
'gambar_informasi' => 'Gambar Informasi',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= STORE =================
|
||||||
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate(
|
||||||
|
$this->rules(),
|
||||||
|
$this->messages(),
|
||||||
|
$this->attributes()
|
||||||
|
);
|
||||||
|
|
||||||
$data = $request->only(
|
$data = $request->only(
|
||||||
'kategori_informasi',
|
'kategori_informasi',
|
||||||
|
|
@ -63,29 +91,23 @@ public function store(Request $request)
|
||||||
->with('success', 'Informasi berhasil ditambahkan.');
|
->with('success', 'Informasi berhasil ditambahkan.');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Form edit informasi
|
// ================= EDIT =================
|
||||||
public function edit($id_informasi)
|
public function edit($id_informasi)
|
||||||
{
|
{
|
||||||
$informasi = Informasi::findOrFail($id_informasi);
|
$informasi = Informasi::findOrFail($id_informasi);
|
||||||
return view('admin.informasi.edit', compact('informasi'));
|
return view('admin.informasi.edit', compact('informasi'));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update informasi
|
// ================= UPDATE =================
|
||||||
public function update(Request $request, $id_informasi)
|
public function update(Request $request, $id_informasi)
|
||||||
{
|
{
|
||||||
$informasi = Informasi::findOrFail($id_informasi);
|
$informasi = Informasi::findOrFail($id_informasi);
|
||||||
|
|
||||||
$validator = Validator::make($request->all(), [
|
$request->validate(
|
||||||
'kategori_informasi' => 'required|in:berita,pengumuman',
|
$this->rules(),
|
||||||
'judul_informasi' => 'required|string|max:255',
|
$this->messages(),
|
||||||
'isi_informasi' => 'required|string',
|
$this->attributes()
|
||||||
'tanggal_informasi' => 'required|date',
|
);
|
||||||
'gambar_informasi' => 'nullable|image|mimes:jpeg,png,jpg,gif|max:2048',
|
|
||||||
]);
|
|
||||||
|
|
||||||
if ($validator->fails()) {
|
|
||||||
return redirect()->back()->withErrors($validator)->withInput();
|
|
||||||
}
|
|
||||||
|
|
||||||
$data = $request->only(
|
$data = $request->only(
|
||||||
'kategori_informasi',
|
'kategori_informasi',
|
||||||
|
|
@ -110,7 +132,7 @@ public function update(Request $request, $id_informasi)
|
||||||
->with('success', 'Informasi berhasil diperbarui.');
|
->with('success', 'Informasi berhasil diperbarui.');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Hapus informasi
|
// ================= DELETE =================
|
||||||
public function destroy($id_informasi)
|
public function destroy($id_informasi)
|
||||||
{
|
{
|
||||||
$informasi = Informasi::findOrFail($id_informasi);
|
$informasi = Informasi::findOrFail($id_informasi);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue