DATABASE
Setelah kita belajar untuk tentang route dan controller maka apa selanjutnya yang harus kita pelajari? coba kita ingat-ingat lagi bagaimana kita telah belajar untuk menangkap input dari user dan memberikan response dari controller. Akan tetapi kita belum melakukan apapun terhadap inputan tersebut.
saatnya kita melakukan interaksi ke dalam database saatnya kita melakukan interaksi ke dalam database. Yakni dengan input dari user aplikasi, kita bisa membuat data baru, mengupdate atau menghapus data yang sudah ada. Cara termudah dan yang direkomendasikan sesuai dengan arsitekur MVC di Laravel adalah menggunakan Model dan memanfaatkan Eloquent. Namun sebelum kita bisa menggunakan Model dan Eloquent, terlebih dahulu kita harus melakukan persiapan database terlebih dahulu.
Konfigurasi Koneksi database File config/database.php
Tetapi bila kita perhatikan ternyata file tersebut menggunakan fungsi env (“DB_HOST”, “127.0.0.1”), itu artinya file akan menggunakan nilai yang ada pada variabel lingkungan . Maka, kita isikan konfigurasi koneksi kita pada file .env di root direktori aplikasi kita.
Buat database baru kalian
Biarkan kosong
Metode dalam Bekerja dengan database Bekerja dengan database menggunakan Laravel agak sedikit berbeda apabila dibandingkan dengan pengembangan aplikasi tanpa framework. Terutama bila kita sebelumnya langsung menggunakan SQL sintaks pada kode PHP. Secara umum alur untuk bekerja dengan database tanpa Laravel adalah seperti ini. Buat desain DB -> Buat Table & Struktur melalui GUI -> Connect -> Query SQL
Code First Dengan metode ini, kita tidak perlu mendesain, membuat database bahkan melakukan insert data awal / dummy melalui aplikasi yang biasa kita gunakan seperti phpMyAdmin, Adminer, dll. Karena kita cukup mendesain dan membuat desain database langsung dari kode kita. Untuk membuat skema database kita memanfaatkan fitur Laravel yaitu Migration, sedangkan untuk mengisi data awal atau data dummy kita bisa menggunakan Seeding.
Database First Metode kedua adalah database first, hal ini jika kita sudah memiliki database, tabel dan skemanya, dan kita langsung ingin menggunakannya tanpa membuat database baru. Metode ini juga bisa diterapkan jika kita lebih suka mendesain skema tabel langsung dari phpMyAdmin misalnya. Dengan metode ini, kita tidak perlu menggunakan Migration.
Migration Migration berfungsi sebagai version control database kita. Dengan migration kita bisa membuat, mengubah atau menghapus struktur tabel dan field database tanpa harus membuka aplikasi GUI database management. Dengan Migration inilah, kita menggunakan metode Code First.
Membuat File Migration Pertama kita perlu membuat sebuah file Migration, file ini nantinya bisa dieksekusi agar dapat mengubah database sesuai perintah yang kita tuliskan di file tersebut. Untuk membuat file Migration kita gunakan perintah ini:
Selanjutnya, coba kita buka file yang baru saja kita buat
Selanjutnya, coba kita buka file yang baru saja kita buat
File Migration ini memiliki 2 method yaitu up() dan down(). Method up() digunakan untuk menuliskan perintah pembuatan atau pengubahan struktur database. Method down() digunakan untuk menuliskan kode yang membatalkan apa yang telah dieksekusi di method up().
Pada method up(), pertama kita buat sebuah tabel dengan nama products, hal itu dilakukan melalui static method dari facade Schema, yaitu Schema::create(“products”), setelah itu kita definisikan field apa saja yang akan dibuat, secara default perintah make:migration akan membuat 2 field untuk kita yaitu id yang merupakan key dan autoIncrement, kemudian timestamps yang akan membuat field created_at dan updated_at pada tabel products. Sementara itu method down(), menggunakan perintah Schema::dropIfExists(“products”) untuk mengecek jika tabel product ada di database kita maka jalankan perintah drop, atau hapus tabel products. Dengan tergeneratenya file Migration kita ini, database kita belum berubah, untuk mengubahnya kita perlu mengeksekusinya.
Mengeksekusi Migration
Solusinya adalah dengan menambahkan beberapa baris pada file AppServiceProvider.php Lokasi: app/Providers/AppServiceProvider.php Sumber :https://sekolahkoding.com/forum/laravel-cara-mengatasi-syntax-error-or-access-violation-1071
Hapus table databasenya
Kalian Migrate Ulang , ok
Setelah menuliskan kode perintah membuat tabel, selanjutnya kita ingin menambah sebuah column dengan nama description, akan tetapi asumsikan kita tidak tahu apakah tabel tersebut sebelumnya pernah dibuat dan sudah memiliki column tersebut. Untuk mengecek apakah sebuah column sudah ada, kita gunakan method hasColumn(“nama_kolom_untuk_dicek”) pada Schema table seperti ini:
Mengubah nama column Untuk mengubah nama tabel kita gunakan method renameColumn().
Menghapus column Untuk mengubah nama tabel kita gunakan method dropColumn().
Column Modifiers Selain kita bisa menentukan tipe data dari column, dengan schema builder kita juga bisa mengubah / menambah perilaku dari column tersebut. Misalnya, membuat column menjadi nullable, menambahkan column setelah column tertentu. Kemampuan untuk melakukan hal itu disebut dengan modifier, apa saja column modifier yang tersedia pada Schema Builder, mari kita lihat:
cara pakainya adalah seperti ini cara pakainya adalah seperti ini. Misalkan kita mau membuat column email, kita ingin meletakkannya setelah column password, dan mau kita beri komentar. Maka pada migration kita tuliskan seperti ini File migration
Seeding Seeding adalah memberikan data awal ke database. Hal ini biasanya dilakukan saat pengembangan terutama jika kita ingin menguji apakah fitur tertentu telah berjalan sesuai ekspektasi menggunakan live data. Kita bisa saja memberikan data awal secara manual dengan melakukan insert melalui DBMS, akan tetapi bayangkan jika kita akan menguji 100 data atau lebih, tentu akan sangat membosankan dan memakan waktu jika kita lakukan Seeding secara manual. Cara yang lebih pintar adalah dengan memanfaatkan fitur Seeding di Laravel.
Membuat Seeding Pertama, kita buat terlebih dahulu file seeder untuk tabel tertentu. Misalnya, kita akan menguji fitur product list, itu berarti kita ingin menyiapkan data products terlebih dahulu ke database. Data ini hanyalah data dummy. Untuk membuat file seeder kita jalankan perintah berikut Setelah kita jalankan perintah di atas, maka sebuah file akan dibuat yaitu app/database/seeds/ProductTableSeeder.php
Selanjutnya, kita akan coba insert data ke tabel products Selanjutnya, kita akan coba insert data ke tabel products. Maka kita tuliskan Query Builder kita pada method run() seperti ini:
Penjelasan kode: Kita menginsert satu row ke table products. Data yang kita insert adalah name dan description. Untuk melakukan insert kita gunakan Model Product karena kita akan menginsert ke tabel products, ingat model Product yang telah kita buat sebelumnya pada bahasan Model. Dengan method create() kita menginsert sebuah row.
Menjalankan Seeder
CEK DATABASE KALIAN