Membuat Web Toko Sepatu dengan laravel 5.8 Part 1 Database dan Migrations







Database dan Migrations

Database adalah kumpulan informasi yang disimpan di dalam komputer secara sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi dari basis data tersebut. jadi Database ini adalah penyimpanan data untuk login, menambah data dsb. 

Koneksi Database dan Migrations

Setelah kalian instal composer serta membuat projectnya lanjut ke tahap koneksi database, dimana koneksi database ini dengan mengubah file yang berada di .env. dengan merubah DBusername dan DBpassword menjadi seperti ini :

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=Toko-Sepatu
DB_USERNAME=root
DB_PASSWORD=
Migration 

Migration adalah fitur yang diberikan dari framework laravel itu sendiri ataupun sebuah control version system untuk database, dengan adanya migration pada laravel ini akan memudahkan kita dalam membuat database.

Selanjutnya baru membuat tahapan Migration pada Laravel
Langkahnya

1. Aktifkan Xampp Control Panel yaitu Apache dan Mysql

2. Buka chrome atau web browser lainnya kemudian akses database xampp dengan "localhost/phpmyadmin" ataupun "127.0.0.1/phpmyadmin" tanpa tanda petik.

3. Kemudian buat Nama databasenya sesuai dengan yang di DB_DATABASE .env tadi seperti Toko-Sepatu, klik new kemudian masukan nama databasenya.


4. Selanjutnya buat tabel users sebagai Login dan Register. Pada framework laravel ini sudah tersedia tabel user jadi tidak usah ribet ribet membuat kodingannya seperti gambar dibawah ini hanya tinggal mengetikan di CMD. Jangan lupa untuk pindah directorynya.



5. Jangan lupa untuk memasukan Session Login seperti dibawah ini.


6. Dan hasilnya sudah ada pada halaman kita.


Lanjut Ke Tahapan membuat web toko sepatu dengan tabel users sudah tersedia tinggal kita tambahkan pada database user ini photo agar si user dapat upload photo dirinya sendiri.

1. Langkah pertama ini buka databasenya seperti yang tadi lanjut ke tabel users dan klik struktur kemudian klik go pada bagian bawah

2. kemudian isi tabelnya dengan nama photo dengan varchar 200 dan as defined dan default.png 

ket: untuk isi tabel users photo ini untuk menampilkan gambar default photo.png agar tidak usah bulak balik edit database langsung kepada tujuan agar s users bisa upload photo.

3. Simpan database maka hasilnya seperti berikut.

Kemudian lanjut ke tahapan membuat Migration lagi.

 kita buat tahapan selanjutnya adalah tabel untuk kategori sepatu jadi kita hanya perlu command
 php artisan make:model Category -m 


kemudian modifikasi tabel category tersebut di directory database/migrations menjadi seperti ini karena sesuaikan tabel tersebut dengan tujuan toko sepatu:


Selanjutnya buat migration product 

php artisan make:model Product -m

Kemudian Modifikasi seperti tadi menjadi seperti ini :



Keterangan : terdapat category_id dimana ini adalah relasi untuk ke tabel categories, karena tabel users ini sudah disediakan secara default oleh laravel.


Selanjutnya buat migration Customer dengan mengetikan 
php artisan make:model Customer -m 

kemudian modifikasi seperti ini : 


selanjutnya buat migration orders dengan mengetikan :
php artisan make:model Orders -m

Kemudian Modifikasi seperti ini:


Langkah terakhir buat migration Orders Detail dengan ketikan:
php artisan make:model Orders_detail -m

kemudian modifikasikan seperti gambar dibawah ini: 


Setelah tahapan migration selesai selanjutnya akses migrations tadi ke database dengan mengetikan di command prompt 

php artisan migrate

sehingga hasilnya seperti berikut:



Membuat Hubungan ke Database

Dari migration yang sudah dibuat barusan tentu saja belum mempunyai relasi lantas bagaimana agar bisa saling terhubung, buat migrations baru dengan ketikan di CMD

php artisan make:migration add_relationships_to_products_table

keterangan: sebenarnya bebas saja kalian mau membuat migrationsnya apa tapi agar ada keterkaitan dan mudah untuk diidentifikasinya 

lalu modifikasi migrations tersebut menjadi seperti ini 

method up() menjadi seperti ini :

    public function up() { 
         Schema::table('products', function (Blueprint $table) { 
         $table->integer('category_id')->unsigned()->change();
         $table->foreign('category_id')->references('id')->on('categories')
                     ->onUpdate('cascade')->onDelete('cascade'); 
                 }); 
        }

keterangan : untuk membuat category_id ini menjadi foreign key maka dibuat unsigned. kita membuat cascade agar saat kita mengrecord categories dihapus maka row yang menggunakan category_id pada tabel tersebut akan terhapus atau update.

kemudian di method down() pada migrations yang sama ubah menjadi seperti ini :

            public function down() 
                
                     Schema::table('products', function(Blueprint $table) 
                    {
                     $table->dropForeign('products_category_id_foreign');
                     }); ​
                     Schema::table('products', function(Blueprint $table)
                     
                     $table->dropIndex('products_category_id_foreign'); 
                     }); ​ 
                     Schema::table('products', function(Blueprint $table) 
                     
                     $table->integer('category_id')->change(); 
                     });
                }

Penjelasan: dimana Method down ini akan menghapus relasi antar table yang dimaksud, dimana method dropForeign menerima format table_field_foreign sehingga pada kasus ini menjadi products_category_id_foreign. begitu juga dengan dropIndex ini untuk menghapus index yang telah dibuat, format yang diterima pun sama. Lalu terakhir mengembalikannya menjadi integerseperti semula.

Dengan begini, maka table categories dan products telah terhubung. Maka hal yang sama dapat dilakukan pada tablelain.

selanjutnya buat relasi antara tabel Orders dengan Customer dan users dengan membuat migrationsnya seperti ini :

php artisan make:migration add_relationships_to_orders_table

kemudian dimodifikasi seperti ini : 

public function up() 
{
 Schema::table('orders', function (Blueprint $table)
 { 
 $table->integer('customer_id')->unsigned()->change(); 
 $table->foreign('customer_id')->references('id')->on('customers')
         ->onUpdate('cascade')->onDelete('cascade'); 

 $table->integer('user_id')->unsigned()->change(); 
 $table->foreign('user_id')->references('id')->on('users') 
                ->onUpdate('cascade')         
               ->onDelete('cascade');
             }); 
} ​

            public function down() 
                {
                     Schema::table('orders', function(Blueprint $table)
                             { 
                                 $table->dropForeign('orders_customer_id_foreign'); 
                             }); ​ 
                     Schema::table('orders', function(Blueprint $table)
                             { 
                                 $table->dropIndex('orders_customer_id_foreign'); 
                             }); ​
                     Schema::table('orders', function(Blueprint $table)
                             { 
                                 $table->integer('customer_id')->change();
                             }); ​ 
                    Schema::table('orders', function(Blueprint $table)
                               
                                 $table->dropForeign('orders_user_id_foreign'); 
                             }); ​ 
                    Schema::table('orders', function(Blueprint $table) 
                                
                                 $table->dropIndex('orders_user_id_foreign'); 
                             }); ​ 
                   Schema::table('orders', function(Blueprint $table)
                                 {
                                 $table->integer('user_id')->change(); 
                               });
                                }


Sebelum menjalankan command migrate, perlu untuk meng-install doctrine/dbal dengan mengetikan sebagai berikut : 

composer require doctrine/dbal

keterangan : package ini bisa kita gunakan untuk melakukan migration seperti migration:rollback.
Kemudian mengetikan 

php artisan migrate

Jika ada beberapa kesalahan lihat saja pada versi laravelnya mungkin berbeda sehingga ada yang harus menggunakan BigIntiger dsb. 

Lanjut dengan part 2 yaitu Templateting dan Authentication 

Belum ada Komentar untuk "Membuat Web Toko Sepatu dengan laravel 5.8 Part 1 Database dan Migrations"

Posting Komentar

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel