ReactJS pada CRUD di framework laravel
Halo teman-teman, Pada story sebelumnya, saya membuat Tampilan dan Create data dari tabel employees (hr.sql).
Kali
ini saya akan menjelaskan bagaimana cara untuk Mengupdate dan Menghapus
data serta implementasi ReactJs pada CRUD framework laravel dari tabel
employees (em.sql), yuk langsung saja kita coba.
Install Node Js
Untuk proses instalasi NodeJs kalian harus mendownloadnya terlebih dahulu pada situs resminya yaitu https://nodejs.org/en/download/. Lalu sesuaikan dengan sistem operasi anda.
Lalu,
Install ReactJs sesuai dengan perintah instalasinya seperti persetujuan
penginstalan, destinasi folder penginstalan, dan summary dari
penginstalannya
Test Instalasi NodeJs
untuk mengecek apakah instalasi nodejs berhasil atau tidak, kita perlu masuk Command Prompt/PowerShell lalu ketikkan
node -v
output
dari code tersebut adalah versi nodejs yang baru saja kita install.
Lalu sekarang kita coba tes instalasi npm nya dengan masukkan command
berikut
npm -v
Instalasi React
Ketikkan kode berikut untuk melakukan instalasi ReactJs pada folder yang telah dibuat
npm install -g create-react-app
Tunggu hingga terinstall sepenuhnya.
Pembuatan Update & Delete pada Laravel CRUD
Pada
post sebelumnya, saya telah membuat fitur Create dan Read data pada
tabel employees (hr.sql) sekarang, saya akan menjelaskan bagaimana kita
akan menjelaskan cara mengupdate data dengan cara mengeditnya dan delete
data pada project laravel kita.
Masukkan Script berikut untuk menambahkan tampilan update dan delete pada index.blade.php
Update data
lihat kembali baris edit pada index.blade.php
<a href=”/employees/edit/{{ $e->employee_id }}”>Edit</a>
jika link edit di klik maka otomatis akan menuju pada route /employees/edit/employee_id
lalu kita tambahkan method Edit pada EmployeeController
Pada method edit
ini kita mengambil data dari table employee berdasarkan id nya(line
79), dan langsung dimasukkan pada variabel employees lalu diarahkan ke
halaman edit.blade.php
Lalu
pada view edit, kita buat viewnya dengan form isian lengkap seperti
pada penginputan data baru Employee(create). hanya saja, pada edit ini
tidak akan menambah data baru dan hanya akan mengupdate data yang ada
dengan id yang telah dipilih
Berikut adalah script dari edit.blade.php
Kita akan memasukkan data yang baru pada employee_id dengan method Post pada tag form. kemudian pada update tersebut kita pakai method PUT.
Lalu pada EmployeeController tambahkan method update
Pada
fungsi find0rFail(line 95) akan dicari data dengan id yang sesuai
dengan id data yang di edit. Kemudian kita ubah data datanya dengan data
yang baru, lalu kita simpan dengan fungsi save()
Beginilah tampilan edit.blade.php-nya
Delete
Perhatikan baris delete pada index.blade.php
<a href=”/employees/hapus/{{ $e->employee_id }}”>Hapus</a>.
jika pada tampilan /employees tombol Delete di klik, maka kita akan di arahkan ke /employees/edit/employee_id dan juga mengirimkan data yang ingin dihapus.
Masuk ke EmployeeControllers, buat method
fungsi delete() adalah untuk menghapus data sesuai id yang dipilih dengan method destroy ini. Setelah berhasil dihapus, lalu sistem akan meredirect ke route /employees.
Seperti ini tampilan aplikasi kita setelah di beri Update & Delete
Setelah
itu, saya akan mengimplementasikan ReactJs pada project yang sudah di
kembangkan dengan Update&Delete. Caranya adalah berikut
Install React pada project anda
Pertama, kita masuk kedalam project kita, lalu buka terminal Command Prompt/PowerShell lalu ketikkan script ini
php artisan preset react
Setelah ada pesan ‘React scaffolding installed successfully.’, selanjutnya kita masukkan lagi perintah
npm install
perintah
tersebut adalah untuk menginstall component react pada project kita.
Setelah selesai, ketikkan perintah berikut pada terminal
npm run dev
Mencoba ReactJs pada Laravel
Pada project, script react ada pada /resources/js/components
Example.js
App.js
Ketikkan script berikut untuk menyambungkan ReactJs ke view yang kita inginkan di laravel pada tag body
<div class=”container”>
<div class=”content”>
<div id=”example” class=”title m-b-md”></div>
</div>
</div>
<script type=”text/javascript” src=”/js/app.js”></script>
Lalu ketikkan script berikut
npm run watch
Kegunaan dari npm run watch adalah untuk menyimpan hasil compile dari javascript yang telah kita perbarui/update.
Sekarang kita jalankan file example ini pada terminal cmd/PowerShell baru dan biarkan npm run watch hidup, agar kodingan javascript otomatis ter-save saat anda menekan ctrl+s.
php artisan serve
Localhost:8000
Mengimplementasikan ReactJs pada Project
Sekarang, kita buat tampilan baru yang akan diimplimentasikan pada project kita.
Pertama, buat file baru pada folder component dengan ekstensi .js. Disini, saya telah membuat file bernama Login.js.
Lalu, ketikkan script berikut
Login.js
perhatikan script berikut
<a href=”/employees” className=”btn btn-success btn-lg fixed bottom”>Masuk ke data</a>
Script tersebut gunanya untuk membuat link pada halaman /employees dengan button
Lalu, kita tambahkan komponen baru pada app.js
Untuk
merender elemen apa pun ke dalam browser DOM, kita perlu memiliki
sebuah container atau elemen DOM root, dan semua yang ada di dalamnya
akan dikelola oleh react DOM. Perubahan ini akan berada di dalam
welcome.blade.php yang terletak di resource /views.
Lalu, saya akan mengganti kodingan dalam welcome.blade.php dengan script seperti berikut
perhatikan script berikut
<div class=”container”>
<div class=”content”>
<div id=”login” class=”title m-b-md”></div>
</div>
</div>
<script type=”text/javascript” src=”/js/app.js”></script>
pada div id kita ganti dengan login karena kita memakai component Login.js bukan Example.js lagi
Jangan lupa pasang route welcome pada web.php
Setelah selesai kita masuk terminal cmd/PowerShell dan jalankan script php artisan serve
Ingat, kalian tidak perlu menjalankan npm run watch lagi, karena tadi npm run watch sudah dibiarkan dihidupkan
Lalu buka browser anda
Nah setelah itu kalian dapat mengklik button “masuk ke data” untuk masuk ke table employee
Baik, itulah tutorial bagaimana mengimplementasikan React Js pada CRUD Laravel, Terimakasih :D
Selamat mencoba..











Posting Komentar