Database adalah kumpulan informasi yang disimpan di dalam komputer secara sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk
Database dan Migrations
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_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
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 :
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 :
{
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 :
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');
});
}
{
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();
});
}
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
COMMENTS