feat: enforce input validation rules and associate user IDs with new records

This commit is contained in:
cukiprit 2026-04-07 22:19:55 +07:00
parent fdb662d61c
commit ff16d4e53c
6 changed files with 51 additions and 25 deletions

View File

@ -64,6 +64,7 @@ public function store(Request $request)
'deskripsi' => 'required|string',
]);
$validated['user_id'] = auth()->id();
Recommendation::create($validated);
return redirect()->route('admin.rekomendasi.index')->with('success', 'Rekomendasi berhasil ditambahkan.');

View File

@ -80,12 +80,12 @@ public function edit($id)
public function store(Request $request)
{
$validated = $request->validate([
'judul' => 'required|string|max:255',
'penulis' => 'required|string|max:255',
'judul' => 'required|string|min:3|max:255',
'penulis' => 'required|string|min:3|max:100',
'category_id' => 'required|exists:categories,id',
'tahun' => 'required|integer',
'kode_buku' => 'nullable|string',
'stok' => 'required|integer|min:0',
'kode_buku' => 'nullable|string|max:10',
'stok' => 'required|integer|min:0|max:99',
'tipe_akses' => 'required|array',
'cover' => 'nullable|image|mimes:jpeg,png,jpg|max:2048',
'file_pdf' => 'nullable|mimes:pdf|max:10240',
@ -111,12 +111,12 @@ public function update(Request $request, $id)
$buku = Book::findOrFail($id);
$validated = $request->validate([
'judul' => 'required|string|max:255',
'penulis' => 'required|string|max:255',
'judul' => 'required|string|min:3|max:255',
'penulis' => 'required|string|min:3|max:100',
'category_id' => 'required|exists:categories,id',
'tahun' => 'required|integer',
'kode_buku' => 'nullable|string',
'stok' => 'required|integer|min:0',
'kode_buku' => 'nullable|string|max:10',
'stok' => 'required|integer|min:0|max:99',
'tipe_akses' => 'required|array',
'cover' => 'nullable|image|mimes:jpeg,png,jpg|max:2048',
'file_pdf' => 'nullable|mimes:pdf|max:10240',

View File

@ -17,7 +17,7 @@ public function store(Request $request)
'nama_pemilik' => 'required|string',
]);
MasterInduk::create($request->all());
MasterInduk::create(array_merge($request->all(), ['user_id' => auth()->id()]));
return back()->with('success', 'Data Induk berhasil ditambahkan. User dengan NIP/NISN ini sekarang bisa mendaftar.');
}

View File

@ -57,6 +57,7 @@ public function store(Request $request)
$validated['icon'] = 'bi-megaphone';
}
$validated['user_id'] = auth()->id();
Announcement::create($validated);
return redirect()->route('admin.pengumuman.index')->with('success', 'Pengumuman berhasil ditambahkan.');

View File

@ -19,13 +19,19 @@
<div class="col-md-8">
<div class="mb-3">
<label for="judul" class="form-label">Judul Buku</label>
<input type="text" name="judul" class="form-control" id="judul"
placeholder="Masukkan judul buku" required>
<input type="text" name="judul" class="form-control @error('judul') is-invalid @enderror" id="judul"
placeholder="Masukkan judul buku" value="{{ old('judul') }}" minlength="3" maxlength="255" required>
@error('judul')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
<div class="mb-3">
<label for="penulis" class="form-label">Penulis</label>
<input type="text" name="penulis" class="form-control" id="penulis"
placeholder="Masukkan nama penulis" required>
<input type="text" name="penulis" class="form-control @error('penulis') is-invalid @enderror" id="penulis"
placeholder="Masukkan nama penulis" value="{{ old('penulis') }}" minlength="3" maxlength="100" required>
@error('penulis')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
<div class="row">
<div class="col-md-3 mb-3">
@ -48,13 +54,19 @@
</div>
<div class="col-md-3 mb-3">
<label for="kode_buku" class="form-label">Kode Buku</label>
<input type="text" name="kode_buku" class="form-control" id="kode_buku"
placeholder="Contoh: 330">
<input type="text" name="kode_buku" class="form-control @error('kode_buku') is-invalid @enderror" id="kode_buku"
value="{{ old('kode_buku') }}" placeholder="Contoh: 330" maxlength="10">
@error('kode_buku')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
<div class="col-md-3 mb-3">
<label for="stok" class="form-label">Stok</label>
<input type="text" name="stok" class="form-control" id="stok"
value="1" min="0" required oninput="this.value = this.value.replace(/[^0-9]/g, '')">
<input type="text" name="stok" class="form-control @error('stok') is-invalid @enderror" id="stok"
value="{{ old('stok', 1) }}" min="0" max="99" maxlength="2" required oninput="this.value = this.value.replace(/[^0-9]/g, '')">
@error('stok')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
</div>
</div>

View File

@ -20,13 +20,19 @@
<div class="col-md-8">
<div class="mb-3">
<label for="judul" class="form-label">Judul Buku</label>
<input type="text" name="judul" class="form-control" id="judul"
value="{{ old('judul', $buku->judul) }}" required>
<input type="text" name="judul" class="form-control @error('judul') is-invalid @enderror" id="judul"
value="{{ old('judul', $buku->judul) }}" minlength="3" maxlength="255" required>
@error('judul')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
<div class="mb-3">
<label for="penulis" class="form-label">Penulis</label>
<input type="text" name="penulis" class="form-control" id="penulis"
value="{{ old('penulis', $buku->penulis) }}" required>
<input type="text" name="penulis" class="form-control @error('penulis') is-invalid @enderror" id="penulis"
value="{{ old('penulis', $buku->penulis) }}" minlength="3" maxlength="100" required>
@error('penulis')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
<div class="row">
<div class="col-md-4 mb-3">
@ -51,8 +57,11 @@
</div>
<div class="col-md-4 mb-3">
<label for="stok" class="form-label">Stok</label>
<input type="text" name="stok" class="form-control" id="stok"
value="{{ old('stok', $buku->stok ?? 1) }}" required oninput="this.value = this.value.replace(/[^0-9]/g, '')">
<input type="text" name="stok" class="form-control @error('stok') is-invalid @enderror" id="stok"
value="{{ old('stok', $buku->stok ?? 1) }}" min="0" max="99" maxlength="2" required oninput="this.value = this.value.replace(/[^0-9]/g, '')">
@error('stok')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
</div>
@ -66,8 +75,11 @@
{{-- Field Kode Buku - Hanya untuk Buku Offline --}}
<div class="mb-3" id="kodeBukuWrapper">
<label for="kode_buku" class="form-label">Kode Buku</label>
<input type="text" name="kode_buku" class="form-control" id="kode_buku"
value="{{ old('kode_buku', $buku->kode_buku) }}" placeholder="Masukkan kode buku">
<input type="text" name="kode_buku" class="form-control @error('kode_buku') is-invalid @enderror" id="kode_buku"
value="{{ old('kode_buku', $buku->kode_buku) }}" placeholder="Masukkan kode buku" maxlength="10">
@error('kode_buku')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
<div class="mb-3">