Tutorial CRUD Laravel
Pada tutorial CRUD Laravel Part 3 ini kita akan belajar mengedit atau mengupdate data pada database dengan laravel.
Inti keseluruhannya sama saja dengan cara mengedit data dari database dengan PHP native dan codeigniter. hanya saja untuk membuat edit data dari database dengan laravel ini kita mengikuti struktur dan perintah-perintah yang ada pada laravel.
Teman-teman bisa membaca dokumentasi query builder laravel di sini.
https://laravel.com/docs/5.7/queries#updates
Yuk langsung saja kita masuk ke penjelasan tutorial CRUD laravel part 3 ini.
Update Data Pada Database Dengan Laravel
Coba teman-teman perhatikan pada view yang menampilkan data pegawai yang sudah kita buat sebelumnya. yaitu pada view index.blade.php
Di sana kita telah membuat tombol atau link edit seperti berikut.
1
|
<a href=“/pegawai/edit/{{ $p->pegawai_id }}”>Edit</a>
|
Pada tombol atau link edit tersebut kita memerintahkan untuk mengalihkan halaman ke route β/pegawai/edit/β. sambil mengirimkan data id data yang ingin di edit.
Sehingga route lengkapnya adalah β/pegawai/edit/{{ $p->pegawai_id }}β.
Untuk pengiriman data melalui url seperti kasus ini sudah kita pelajari pada tutorial sebelumnya. yaitu pada tutorial request data pada laravel.
Silahkan teman-teman baca lagi tutorial pengiriman data atau request data pada laravel. agar materi pada tutorial membuat CRUD Laravel part 3 ini bisa lebih mudah dipahami.
Karena pada saat tombol edit diklik, maka akan di arahkan ke route β/pegawai/edit/dan_id_data_nyaβ.
maka sekarang kita buat route baru seperti berikut, agar data id yang dikirimkan sekalian kita kirim juga ke controller untuk kita ambil data pegawai yang ber id tersebut.
belajar_laravel/routes/web.php
1
|
Route::get(‘/pegawai/edit/{id}’,‘PegawaiController@edit’);
|
bisa teman-teman lihat pada route ini. data id yang dikirimkan pada url kita istilahkan dengan {id}. dan kita perintahkan untuk menjalankan method edit pada controller PegawaiController.php.
Data id nya akan kita tangkap dari controller.
Buat method edit nya dalam controller PegawaiController.php.
belajar_laravel/app/Http/Controllers/PegawaiController.php
1
2
3
4
5
6
7
8
9
|
// method untuk edit data pegawai
public function edit($id)
{
// mengambil data pegawai berdasarkan id yang dipilih
$pegawai = DB::table(‘pegawai’)->where(‘pegawai_id’,$id)->get();
// passing data pegawai yang didapat ke view edit.blade.php
return view(‘edit’,[‘pegawai’ => $pegawai]);
}
|
Data id yang dikirimkan dari route tadi kita tangkap dalam parameter method edit ( edit($id) ).
Selanjutnya kita ambil data pegawai dari database dengan menggunakan query builder berikut.
1
2
|
// mengambil data pegawai berdasarkan id yang dipilih
$pegawai = DB::table(‘pegawai’)->where(‘pegawai_id’,$id)->get();
|
Sekalian kita seleksi data id yang ingin di ambil dengan menyeleksi id pegawainya,
1
|
where(‘pegawai_id’,$id)
|
Kemudian kita passing data nya ke view edit.blade.php.
1
|
return view(‘edit’,[‘pegawai’ => $pegawai]);
|
Sekarang buat view baru dengan nama edit.blade.php. karena kita akan menampilkan data pegawai yang ingin di edit tadi di dalam form edit.
belajar_laravel/resources/views/edit.blade.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
|
<!DOCTYPE html>
<html>
<head>
<title>Tutorial Membuat CRUD Pada Laravel – www.malasngoding.com</title>
</head>
<body>
<h2><a href=“https://www.malasngoding.com”>www.malasngoding.com</a></h2>
<h3>Edit Pegawai</h3>
<a href=“/pegawai”> Kembali</a>
<br/>
<br/>
@foreach($pegawai as $p)
<form action=“/pegawai/update” method=“post”>
{{csrf_field() }}
<input type=“hidden” name=“id” value=“{{ $p->pegawai_id }}”> <br/>
Nama <input type=“text” required=“required” name=“nama” value=“{{ $p->pegawai_nama }}”> <br/>
Jabatan <input type=“text” required=“required” name=“jabatan” value=“{{ $p->pegawai_jabatan }}”> <br/>
Umur <input type=“number” required=“required” name=“umur” value=“{{ $p->pegawai_umur }}”> <br/>
Alamat <textarea required=“required” name=“alamat”>{{ $p–>pegawai_alamat }}</textarea> <br/>
<input type=“submit” value=“Simpan Data”>
</form>
@endforeach
</body>
</html>
|
Perhatikan view edit di atas.
Kita menampilkan data pegawai yang ingin di edit ke dalam form edit. menggunakan perulangan foreach.
1
2
3
4
5
6
7
8
9
10
11
|
@foreach($pegawai as $p)
<form action=“/pegawai/update” method=“post”>
{{csrf_field() }}
<input type=“hidden” name=“id” value=“{{ $p->pegawai_id }}”> <br/>
Nama <input type=“text” required=“required” name=“nama” value=“{{ $p->pegawai_nama }}”> <br/>
Jabatan <input type=“text” required=“required” name=“jabatan” value=“{{ $p->pegawai_jabatan }}”> <br/>
Umur <input type=“number” required=“required” name=“umur” value=“{{ $p->pegawai_umur }}”> <br/>
Alamat <textarea required=“required” name=“alamat”>{{ $p–>pegawai_alamat }}</textarea> <br/>
<input type=“submit” value=“Simpan Data”>
</form>
@endforeach
|
Saya yakin teman-teman sudah familiar dengan syntax atau menampilkan data seperti ini. karena sama saja intinya dengan CRUD yang pernah teman-teman buat menggunakan PHP ataupun CodeIgniter.
kalau di laravel jangan lupa untuk menggunakan fungsi csrf protection yang sudah dijelaskan juga sebelumnya tentang kegunaannya.
1
|
{{ csrf_field() }}
|
Pada form edit ini kita menetapkan action nya ke route β/pegawai/updateβ. dengan menggunakan method post. seperti biasa.
Oleh karena itu kita buat route β/pegawai/updateβ dulu untuk meng-handle data dari form edit pegawai ini.
belajar_laravel/routes/web.php
1
|
Route::post(‘/pegawai/update’,‘PegawaiController@update’);
|
Pada route update ini kita tidak menggunakan method get. tapi menggunakan method post. seperti pada saat kita belajar membuat input data ke database dengan laravel sebelumnya.
pada route ini kita perintahkan untuk menjalankan method update dalam controller PegawaiController.php.
Sekarang buat lagi sebuah method updatenya.
belajar_laravel/app/Http/Controllers/PegawaiController.php
1
2
3
4
5
6
7
8
9
10
11
12
13
|
// update data pegawai
public function update(Request $request)
{
// update data pegawai
DB::table(‘pegawai’)->where(‘pegawai_id’,$request–>id)->update([
‘pegawai_nama’ => $request–>nama,
‘pegawai_jabatan’ => $request–>jabatan,
‘pegawai_umur’ => $request–>umur,
‘pegawai_alamat’ => $request–>alamat
]);
// alihkan halaman ke halaman pegawai
return redirect(‘/pegawai’);
}
|
Seperti pada saat membuat proses penginputan data ke database. data yang dikirim dari form kita tangkap dengan mendeklarasi kan Request dalam parameter method update ini.
dan data-data yang dikirim dari form edit akan tersimpan didalam variabel $request. untuk penamaan variabel nya bebas. tinggal teman-teman sesuaikan saja.
Untuk update data nya kita menggunakan query builder seperti berikut.
1
2
3
4
5
6
7
|
// update data pegawai
DB::table(‘pegawai’)->where(‘pegawai_id’,$request–>id)->update([
‘pegawai_nama’ => $request–>nama,
‘pegawai_jabatan’ => $request–>jabatan,
‘pegawai_umur’ => $request–>umur,
‘pegawai_alamat’ => $request–>alamat
]);
|
dan terakhir kita alihkan kembali halaman nya ke route β/pegawaiβ yang menampilkan semua data pegawai.
1
2
|
// alihkan halaman ke halaman pegawai
return redirect(‘/pegawai’);
|
Oke kita coba jalankan. localhost:8000/pegawai. dan klik edit pada data yang ingin di ubah atau di update.
Disini saya mencoba mengubah data pegawai yang bernama zainudin.
Di sini saya mencoba mengubah data jabatan dan alamat. yang awalnya jabatannya manager, saya edit menjadi βdirektur utamaβ. dan alamatnya saya ubah menjadi βjl. bukit indahβ.
Klik simpan data.
Maka sekarang data berhasil di update.
Oke teman-teman sekian dulu tutorial tentang Cara Membuat CRUD dengan Laravel Part 3.