Laravel CRUD Select merupakan sebuah fungsi Laravel untuk menampilkan data dari Database. Artikel ini akan membahas bagaimana mengembangan sebuah halaman web yang data nya dari hasil pembacaan database yang telah tersedia di server,
Laravel CRUD
Perkembangan pesat dari web development adalah sejak ditemukannya fitur halaman web yang dapat beriteraksi dengan database. Hal ini membuat halaman web bersifat dinamis dimana isi dari halaman web tidak hanya dikenbangkan oleh administrator, namun juga berasal dari kontribusi pengguna halaman web tersebut.
CRUD merupakan operasi database yang ditemui pada hampir seluruh aplikasi, termasuk pada situs web yang bersifat dinamis. Read merupakan salah satu bagian dari CRUD yang selalu ada, dimana melalui fungsi ini data akan dapat diambil dari database untuk kemudian ditampilkan di layar atau untuk diolah kembali. Pada database convention pengambilan data akan dilakukan dengan menggunakan perintah SQL Select. Namun demikian Laravel menyediakan Eloquent untuk mempermudah pengembang program untuk mengakses dan menampilkan data dengan lebih mudah serta jumlah kode yang jauh lebih pendek.
Seperti disinggung sebelumnya penanganan logic termasuk di antaranya fungsi CRUD diatur melalui Controller. Berikut Fungsi CRUD yang dibuat dengan membuat method/function di Controller:
- index
- create
- store
- edit
- update
- show
- destroy
Eloquent Object Relational Mapper (ORM) dari Laravel menyediakan implementasi ActiveRecord yang sederhana untuk bekerja dengan basis data yang dipergunakan dalam project. Setiap tabel database memiliki “Model” yang terkait dan dapat digunakan untuk berinteraksi dengan tabel itu. Dokumentasi perintah Eloquent secara lengkap: https://laravel.com/docs/5.7/eloquent
Membuat Fungsi CRUD – Select Pada Laravel
Pada praktikum ini akan dibuat sebuah halaman web yang berfungsi untuk menampilkan data dari database di layar. Data akan diakses dengan menggunakan Laravel Eloquent ORM.
- Buat Controller dengan fungsi database CRUD melalui Artisan dengan perintah:
Berdasarkan proses tersebut akan dilihat daftar route yang dapat diakses dengan perintah:
Agar proses routing dapat ditangani, maka pada halaman web.php pada routes dapat dilakukan penambahan kode seperti berikut:
Check kembali daftar Route yang telah didefinikasikan:
- Perintah Route::resource(‘posts’, ‘PostController’); mendaftarkan semua method yang dibuat dengan perintah make:model –resource yang ada ke dalam Route, tanpa perlu mendefinisikan satu per satu
Menambahkan Model dalam Controller
- Perhatikan Namespace dari project, dalam contoh project yang dibuat menggunakan App
- Nama model yang dibuat adalah Post
Maka untuk menyertakan Model yang telah dibuat dalam Controller, dapat dipergunakan perintah:
- Setelah disertakan, maka model dapat dimanfaatkan dengan menggunakan nama model diikuti dengan methods nya, misalnya perintah untuk menampilkan seluruh dari dari tabel sebagai contoh:
- Cobalah menambahkan kedua baris tersebut dalam file Controller /app/Http/Controllers/PostController.php
- Pada saat dijalankan, dengan alamat portfolio.test/posts, method index dalam Controllers akan dijalankan dan menghasilkan:
Kirim Data ke View
- Edit file Controller untuk mengirim data ke view:
- Artinya adalah view akan diletakkan dalam sebuah file index.blade.php dalam sebuah folder baru yang diberi nama posts, sehingga struktur folder menjadi sebagai berikut:
- Berikutnya edit file View posts/index.blade.php
- Buat view seperti halnya view yang lain, dengan meng-extends template app.blade.php dalam folder layouts, serta menambahkan section
- Berikutnya menampilkan data di view, silahkan ketik program berikut:
- Apabila dijalankan, semua akan ditampilkan di layer seperti tampak dalam potongan program berikut, dimana semua data ditampilkan dalam View, pada contoh baru 1 row data yang ada dalam DB.
- Potongan program berikut untuk menambahkan menu di header:
Menampilkan Single Record
- Single Record atau post akan ditampilkan dengan memanfaatkan URI:
/posts/{post} - dimana sesuai dengan Action akan memanggil method show pada Controller:
PostController@show
- Edit method show pada controller PostsController dan test dengan menambahkan baris berikut:
- Fungsi find($id) merupakan fungsi Eloquent untuk mengambil data dari table yang dihasilkan model Post dengan id yang dikandung $id
- Tampak pada gambar berikut adalah data yang dihasilkan apabila halaman diakses dengan url sebagai berikut, dimana pada contoh ini nilai $id adalah 1
portfolio.test/posts/1
- Langkah berikutnya adalah membuat view untuk menampilkan data tersebut di layar.
- Silahkan lakukan perubahan juga untuk Controller sesuai dengan tampilan berikut ini:
- Pada saat situs web dijalankan, maka data single post tersebut akan ditampilkan sebagai berikut:
Latihan
- Silahkan mencoba untuk menambahkan data lain dalam project hingga semua data ditampilkan dalam layar!
- Buatlah fungsi menampilkan semua data maupun single post untuk semua sub menu yang relevan.
Updates
- Pada teks nama controller PostsController telah diubah menjadi PostController, agar sesusai dengan naming conventions. Baca: Penamaan Variabel Laravel (Belajar Laravel #12)
- Beberapa gambar belum diupdate, masih tertulis PostsController.