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:
Copy to Clipboard
Output Terminal hasil pembuatan Controller

Output Terminal hasil pembuatan Controller

Berdasarkan proses tersebut akan dilihat daftar route yang dapat diakses dengan perintah:

Copy to Clipboard
Route yang dihasilkan untuk Controller

Route yang dihasilkan untuk Controller

Agar proses routing dapat ditangani, maka pada halaman web.php pada routes dapat dilakukan penambahan kode seperti berikut:

Copy to Clipboard
Pendaftaran Penanganan Routing untuk Controller dengan –resource

Pendaftaran Penanganan Routing untuk Controller dengan –resource

Check kembali daftar Route yang telah didefinikasikan:

Copy to Clipboard
Route dengan penambahan penanganan fungsi CRUD

Route dengan penambahan penanganan fungsi CRUD

  • 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:

Copy to Clipboard
  • Setelah disertakan, maka model dapat dimanfaatkan dengan menggunakan nama model diikuti dengan methods nya, misalnya perintah untuk menampilkan seluruh dari dari tabel sebagai contoh:
Copy to Clipboard
  • Cobalah menambahkan kedua baris tersebut dalam file Controller /app/Http/Controllers/PostController.php
Penambahan Model di Controller

Penambahan Model di Controller

  • Pada saat dijalankan, dengan alamat portfolio.test/posts, method index dalam Controllers akan dijalankan dan menghasilkan:
Data JSON yang dihasilkan dari akses ke Model

Data JSON yang dihasilkan dari akses ke Model

Kirim Data ke View

  • Edit file Controller untuk mengirim data ke view:
Copy to Clipboard
Tampilan PostsController

Tampilan PostController

Pembuatan View

  • Pada Controller dituliskan:
Copy to Clipboard
  • 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:
Copy to Clipboard
  • 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
    Struktur index.blade.php

    Struktur index.blade.php

  • Berikutnya menampilkan data di view, silahkan ketik program berikut:
Copy to Clipboard
Tampilan index.blade.php

Tampilan index.blade.php

  • 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.
Tampilan View dengan Data

Tampilan View dengan Data

  • Potongan program berikut untuk menambahkan menu di header:
Modifikasi Menu

Modifikasi Menu

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
Terlihat Routing untuk menampilkan single data

Terlihat Routing untuk menampilkan single data

  • Edit method show pada controller PostsController dan test dengan menambahkan baris berikut:
Copy to Clipboard
  • Fungsi find($id) merupakan fungsi Eloquent untuk mengambil data dari table yang dihasilkan model Post dengan id yang dikandung $id
    Tampilan PostsController

    Tampilan PostsController

  • 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
Data JSON yang dihasilkan pada contoh Single Data

Data JSON yang dihasilkan pada contoh Single Data

  • Langkah berikutnya adalah membuat view untuk menampilkan data tersebut di layar.
View untuk menampilkan single data yang dibuat

View untuk menampilkan single data yang dibuat

  • Silahkan lakukan perubahan juga untuk Controller sesuai dengan tampilan berikut ini:
Controller untuk Single Data

Controller untuk Single Data

  • Pada saat situs web dijalankan, maka data single post tersebut akan ditampilkan sebagai berikut:
Tampilan Website Single Data

Tampilan Website Single Data

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.

Written by: SEW 20191028