Halo teman-teman semuanya, di artikel sebelumnya kita telah belajar bagaimana cara membuat dan menjalankan project baru dengan Laravel dan pada kesempatan kali ini kita semua akan belajar bagaimana cara membuat Model dan Migration di dalam Laravel.
Langkah 1 - Konfigurasi Database di Laravel
Sebelum kita membuat Model dan Migration, maka kita perlu mengatur koneksi database di dalam Laravel. Dan enak-nya, di dalam Laravel untuk melakukan hal tersebut sangatlah mudah, kita cukup mengubah konfig yang ada di dalam file .env
.
Jadi, sekarang silahkan teman-teman buka project Laravel-nya melalui text editor, seperti VsCode, kemudian buka file .env
dan cari kode berikut ini.
.env
DB_CONNECTION=sqlite
# DB_HOST=127.0.0.1
# DB_PORT=3306
# DB_DATABASE=laravel
# DB_USERNAME=root
# DB_PASSWORD=
Sejak Laravel 11 rilis, untuk default koneksi database-nya akan menggunakan sqlite
. Dan disini kita akan mengubahnya menggunakan mysql
.
Silahkan ubah kode di atas, menjadi seperti berikut ini.
.env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=db_laravel_xendit
DB_USERNAME=root
DB_PASSWORD=
Di atas, untuk DB_CONNECTION
kita ubah menjadi mysql
dan untuk DB_DATABASE
adalah nama dari database yang akan kita gunakan, yaitu db_laravel_xendit
.
Sedangkan untuk DB_USERNAME
dan DB_PASSWORD
disesuaikan dengan konfigurasi MysQL masing-masing. Jika menggunakan XAMPP, maka password-nya dikosongkan saja.
Langkah 2 - Membuat Model dan Migration
Setelah berhasil mengatur koneksi database di dalam Laravel, maka kita akan lanjutkan membuat Modeld an Migration-nya.
Silahkan teman-teman jalankan perintah berikut ini di dalam terminal/CMD dan pastikan sudah berada di dalam project Laravel-nya.
php artisan make:model Donation -m
Jika perintah di atas berhasil dijalankan, maka kita akan mendapatkan 2 file baru yang berada di dalam folder :
-
app/Models/Donation.php
-
database/migrations/2024_03_07_024630_create_donations_table.php
Langkah 3 - Menambahkan Field di Migration
Sekarang kita akan menambahkan field / kolom di dalam file Migration, jadi silahkan teman-teman buka file-nya di database/migrations/2024_03_07_024630_create_donations_table.php
, kemudian pada function ubah kode-nya menjadi seperti berikut ini.
database/migrations/2024_03_07_024630_create_donations_table.php
public function up(): void
{
Schema::create('donations', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email');
$table->bigInteger('amount');
$table->text('note');
$table->string('status')->default('PENDING');
$table->string('external_id')->nullable();
$table->string('invoice_url')->nullable();
$table->timestamps();
});
}
Dari perubahan kode di atas, kita menambahkan 7 field / kolom, yaitu:
FIELD / KOLOM |
TYPE DATA |
name |
string |
email |
string |
amount |
bigInteger |
note |
text |
status |
string |
external_id |
string |
invoice_url |
string |
Langkah 4 - Menambahkan Mass Assignment
Agar field / kolom yang sudah kita tambahkan di atas dapat menyimpan data di dalam table, maka kita perlu menambahkan Mass Assignment di dalam Model.
Jadi silahkan teman-teman buka file app/Models/Donation.php
, kemudian ubah kode-nya menjadi seperti berikut ini.
app/Models/Donation.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Donation extends Model
{
use HasFactory;
/**
* fillable
*
* @var array
*/
protected $fillable = [
'name',
'email',
'amount',
'note',
'status',
'external_id',
'invoice_url',
];
}
Di atas, kita menambahkan properti $fillable
, yang mana digunakan agar field dapat melakukan insert data ke dalam table.
Langkah 5 - Menjalankan Proses Migrate
Setelah berhasil menambahkan field dan Mass Assignment, maka kita akan belajar menjalankan proses migrate. Proses ini akan menjalankan beberapa proses, diantaranya.
- Membuat database ke dalam MySQL.
- Membuat table beserta field / kolom.
Silahkan teman-teman jalankan perintah berikut ini di dalam terminal/CMD dan pastikan sudah berada di dalam project Laravel-nya.
php artisan migrate
Jika muncul pertanyaan seperti berikut ini, silahkan pilih Yes
dan ENTER.
WARN The database 'db_laravel_xendit' does not exist on the 'mysql' connection.
┌ Would you like to create it? ────────────────────────────────┐
│ ● Yes / ○ No │
└──────────────────────────────────────────────────────────────┘
Jika berhasil, maka akan terbuat database baru di dalam MySQL dengan nama db_laravel_xendit
dan di dalamnya akan terdapat beberapa table, termasuk table donations
yang sudah kita buat sebelumnya di dalam migration.
Kesimpulan
Pada artikel ini kita telah belajar banyak hal, yaitu mengatur koneksi database di Laravel, membuat Model dan Migration, menambahkan field dan Mass Assignment dan yang terakhir adalah menjalankan proses migrate.
Pada artikel berikutnya, kita semua akan belajar bagaimana cara membuat layout dari aplikasi yang akan kita gunakan.
Terima Kasih