-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgajelas.php
158 lines (136 loc) · 4.83 KB
/
gajelas.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
<?php
namespace App\Http\Controllers;
use App\Models\Pemeriksaan;
use App\Models\DataAnak;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Session;
class PemeriksaanController extends Controller
{
/**
* Menampilkan daftar pemeriksaan dengan paginasi.
*
* @return \Illuminate\View\View
*/
public function index()
{
// Mengambil data pemeriksaan dengan pagination
$pemeriksaans = Pemeriksaan::paginate(5); // 5 item per halaman
return view('pemeriksaan.index', compact('pemeriksaans'));
}
/**
* Menampilkan form untuk menambahkan pemeriksaan baru.
*
* @param string $nama Nama data anak
* @return \Illuminate\View\View
*/
public function create($nama)
{
// Cari data anak berdasarkan nama
$dataAnak = DataAnak::where('nama', $nama)->firstOrFail();
// Tampilkan form tambah pemeriksaan dengan data anak yang relevan
return view('pemeriksaan.create', compact('dataAnak'));
}
/**
* Menyimpan pemeriksaan baru ke database.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\RedirectResponse
*/
public function store(Request $request)
{
// Validasi data
$request->validate([
'data_anak_id' => 'required|exists:data_anak,id', // Perbaiki validasi dengan nama tabel yang benar
'tanggal_periksa' => 'required|date',
'berat_badan' => 'required|numeric|min:0',
'tinggi_badan' => 'required|numeric|min:0',
'gizi' => 'required|string|max:255',
'imunisasi' => 'required|string|max:255',
'catatan' => 'nullable|string|max:1000',
]);
// Menyimpan data pemeriksaan
Pemeriksaan::create($request->all());
// Mengambil nama anak berdasarkan ID
$dataAnak = DataAnak::find($request->data_anak_id);
$namaAnak = $dataAnak->nama;
// Arahkan ke halaman detail data anak
return redirect()->route('data-anak.show', ['nama' => $namaAnak])
->with('success', 'Pemeriksaan berhasil ditambahkan.');
}
/**
* Menampilkan detail pemeriksaan berdasarkan ID.
*
* @param int $id ID pemeriksaan
* @return \Illuminate\View\View
*/
public function show($id)
{
$pemeriksaan = Pemeriksaan::findOrFail($id);
return view('pemeriksaan.show', compact('pemeriksaan'));
}
/**
* Menampilkan form untuk mengedit pemeriksaan.
*
* @param string $nama Nama anak
* @return \Illuminate\View\View
*/
public function edit($nama)
{
// Cari data anak berdasarkan nama
$dataAnak = DataAnak::where('nama', $nama)->firstOrFail();
// Ambil data pemeriksaan terkait yang ingin diedit
$pemeriksaan = Pemeriksaan::where('data_anak_id', $dataAnak->id)->firstOrFail();
// Tampilkan form edit pemeriksaan
return view('pemeriksaan.edit', compact('dataAnak', 'pemeriksaan'));
}
/**
* Memperbarui data pemeriksaan di database.
*
* @param \Illuminate\Http\Request $request
* @param string $nama Nama anak
* @return \Illuminate\Http\RedirectResponse
*/
public function update(Request $request, $nama)
{
// Validasi data
$request->validate([
'tanggal_periksa' => 'required|date',
'berat_badan' => 'required|numeric|min:0',
'tinggi_badan' => 'required|numeric|min:0',
'gizi' => 'required|string|max:255',
'imunisasi' => 'required|string|max:255',
'catatan' => 'nullable|string|max:1000',
]);
// Cari data anak berdasarkan nama
$dataAnak = DataAnak::where('nama', $nama)->firstOrFail();
// Ambil data pemeriksaan yang ingin diperbarui
$pemeriksaan = Pemeriksaan::where('data_anak_id', $dataAnak->id)->firstOrFail();
// Memperbarui data pemeriksaan
$pemeriksaan->update($request->only([
'tanggal_periksa',
'berat_badan',
'tinggi_badan',
'gizi',
'imunisasi',
'catatan',
]));
// Arahkan kembali ke halaman detail data anak
return redirect()->route('data-anak.show', ['nama' => $dataAnak->nama])
->with('success', 'Pemeriksaan berhasil diperbarui.');
}
/**
* Menghapus data pemeriksaan dari database.
*
* @param int $id ID pemeriksaan
* @return \Illuminate\Http\RedirectResponse
*/
public function destroy($id)
{
// Cari pemeriksaan berdasarkan ID
$pemeriksaan = Pemeriksaan::findOrFail($id);
// Hapus pemeriksaan
$pemeriksaan->delete();
// Redirect dengan pesan sukses
return redirect()->back()->with('success', 'Data pemeriksaan berhasil dihapus.');
}
}