CRUD (Create, Read, Update, dan Delete)

Create, Read, Update dan Delete/CRUD

CRUD adalah singkatan dari Create, Read, Update, dan Delete. Proses ini sangat berkaitan dengan pengambilan atau transaksi data dari atau ke database. Hal ini menjadi krusial apabila berhubungan dengan sistem informasi perusahaan karena data yang diproses biasanya merupakan data transaksi.

Form Builder 

1. Pertama kita akan membuat halaman baru untuk melakukan input data baru Post. Buat file baru resources/views/posts/create.blade.php, code nya seperti dibawah ini

2. Pada line 6, kita melihat ada code route('posts.store'). Code tersebut akan mapping ke routes /posts, silahkan lihat mapping routes dibawah ini. Pada column name “posts.store” di map ke column URI “posts”. Inilah salah satu kegunaan men-setting name ketika mendefinisikan routing.


3. Pada file app/Http/Controllers/PostsController.php, kita hubungkan function create() dengan file resources/views/posts/create.blade.php


4. Buka halaman http://localhost:8000/posts/create


5. Ketika di submit akan muncul seperti ini. Ini terjadi karena laravel mengimplementasikan CSRF protection secara default. Kunjungi halaman ini untuk lebih detail nya https://laravel.com/docs/8.x/csrf.


6. Untuk menghandle CSRF protection, pada form nya kita cukup menambahkan “@csrf”. Line 7.


 7. Kalau kita inspect element di browser nya, makan akan code html seperti ini


 

8. Untuk melakukan testing bahwa kita sudah menghandle CSRF protection dengan benar, maka pada function store(), kita tambahkan


9. Sekarang http://localhost:8000/posts/create kita submit ulang, maka hasilnya akan seperti ini


Save Submitted Data From Form 

1. Pada file app/Http/Controllers/PostsController.php function store(), tambahkan code untuk menyimpan data ke database.

         

2. Submit form di halaman http://localhost:8000/posts/create


3. Setelah berhasil simpan ke database, maka akan redirect ke halaman /posts/{post_id}


Form Validation 

1. Untuk lebih jelas mengenai laravel validation bisa kunjungi halaman ini https://laravel.com/docs/8.x/validation#available-validation-rules. 

2. Pada function store() tambahkan code dibawah ini. Line 43-47.

3. Pada form nya kita perlu memberitahu user alasan error nya. Line 15-23.


4. Ketika submit form yang tidak valid akan menjadi seperti ini


5. Kita juga bisa memunculkan error pada field tertentu saja. Line 12-14 dan line 19-21.

6. Hasilnya seperti ini


Custom Form Request Class 
1. Untuk menghandle validation yang komplek dan implementasi DRY Principle (https://en.wikipedia.org/wiki/Don%27t_repeat_yourself), kita bisa membuat custom request class. Jalan command dibawah ini. php artisan make:request StorePost 
2. Command tersebut akan membuat file app/Http/Requests/StorePost.php. 
3. Sekarang kita akan memindahkan logic validation yang ada pada function store() ke file app/Http/Requests/StorePost.php. Lihat line 16 dan 27-28.

4. Ubah function store() menjadi seperti ini.


 5. Jangan lupa untuk menambahkan line code use App\Http\Requests\StorePost; pada file controller nya. Line 5.


Flash Message 

1. Flash message adalah one time message yang berguna untuk memberikan info ketika pindah dari satu page ke page lain. Misalkan kita akan memberi tahu kalau blog post telah berhasil disimpan.

2. Pada function store(), tambahkan code dibawah ini. Line 57.


3. Untuk memunculkan flash message ini, kita perlu menambahkan code pada file resources/views/layouts/app.blade.php. Line 15-19.


4. Kita coba submit form

5.Hasilnya menjadi seperti ini


Get Current Input When Validation Failed
1. Untuk menghandle masalah tersebut kita akan menggunakan old() helper yang sudah disediakan oleh laravel. Line 10 dan line 17-19. 


2. Sekarang kita coba submit form yang tidak valid, maka hasilnya seperti ini:


 

Model Mass Assignment

1. Pada file model app/Models/BlogPost.php, tambahkan code ini. Line 10.

2. Pada file app/Http/Controllers/PostsController.php function store(), ubah menjadi seperti ini

Edit Form 

1. Form untuk edit dan create blog post bisa menggunakan form yang sama. Ini adalah implementasi DRY principle. 

2. Buat file baru resources/views/posts/partials/form.blade.php, code nya seperti dibawah ini. 


3. Ubah file resources/views/posts/create.blade.php menjadi seperti ini

4. Buat file baru resources/views/posts/edit.blade.php, code nya seperti dibawah ini 


5. Pada file app/Http/Controllers/PostsController.php function edit(), ubah menjadi seperti ini. Line 86


6. Sekarang kita coba buka form edit misalkan untuk blog post id = 1, http://localhost:8000/posts/1/edit. Kasus disya tampilannya seperti ini, jadi value dari form nya usah diisi oleh data yang kita ambil dari database.



Update Action 

1. Pada file app/Http/Controllers/PostsController.php function update(), ubah menjadi seperti ini


2. Sekarang kita coba update blog post dengan id = 1, http://localhost:8000/posts/1/edit. Maka ketika di submit hasilnya seperti ini


Delete Action 

1. Untuk implementasikan delete action, kita akan mengubah file resources/views/posts/index.blade.php menjadi seperti ini. Line 10-14.


2. Pada file app/Http/Controllers/PostsController.php function destroy(), ubah menjadi seperti ini


3. Sekarang kita buka halaman http://localhost:8000/posts

4. Sekarang kita coba delete salah satu row nya

Comments

Popular posts from this blog

Konsep estetika gambar pada desain

Cloud Infrastructure Mechanism