Membuat Project Baru Laravel di Windows
Cara membuat project baru Laravel di Windows dan pengaturan awalnya
Instalasi
composer create-project laravel/laravel nama-project
- Laravel akan ter-install di folder
nama-project
Pengaturan .env
APP_URL=http://namaproject.test
DB_DATABASE=namadatabase
DB_USERNAME=root
DB_PASSWORD=
APP_URL
di set jika menggunakan virtual host, jika tidak biarkan default nyalocalhost
Timezone
Ubah timezone (jika perlu) di config/app.php
'timezone' => 'Asia/Jakarta'
Menjalankan aplikasi
php artisan serve
Atau jika menggunakan virtual host bisa langsung akses di browser dengan alamat yang di set di APP_URL
Migration
Di folder app/database/migrations
ada beberapa file migration, hapus yang sekiranya tidak diperlukan, dan sisakan file migration untuk create_users_table
php artisan migrate
php artisan migrate:fresh
php artisan migrate:rollback
php artisan migrate:refresh
fresh
untuk menghapus semua tabel di database dan melakukan migrate ulangrollback
untuk membatalkan migration terakhirrefresh
untuk rollback semua migration dan melakukan migrate ulang
Saat menjalankan migration, cek di database apakah ada table personal_access_token
atau tidak, jika ada dan tidak mau menggunakan atau mau menghapus nya, edit file app/Providers/AppServiceProvider.php
public function register(): void
{
Sanctum::ignoreMigrations();
}
Lakukan migrate ulang dengan fresh
maka table personal_access_token
tidak akan ada lagi
Membuat file migration baru
php artisan make:migration create_produk_table
Nama file bisa bebas, tapi kalau di dalam nama file ada kata kunci create dan nama tabel nya, Laravel akan otomatis membuat migration untuk create table
Contoh schema untuk tabel dengan foreign key
Schema::create('mentor', function (Blueprint $table) {
$table->id();
$table->string('nama', 50);
$table->string('tempat_lahir', 50);
$table->date('tanggal_lahir');
$table->string('alamat', 100);
$table->string('no_hp', 15);
$table->foreignId('user_id')->constrained('users')->onDelete('cascade');
$table->timestamps();
});
timestamps()
opsional, jika tidak ingin ada atributcreated_at
danupdated_at
maka bisa dihapus
Contoh model user
class User extends Authenticatable
{
protected $table = 'users';
protected $primaryKey = 'id';
protected $guarded = ['id'];
public $timestamps = true;
// contoh relasi belong to
public function customer()
{
return $this->belongsTo(Customer::class);
}
// contoh relasi has many
public function pembayaran()
{
return $this->hasMany(Pembayaran::class);
}
}
$guarded
digunakan sebagai kebalikan dari$fillable
, jadi semua bisa diisi kecuali atributid
$fillable
bisa digunakan untuk memilih atribut mana saja yang bisa diisi$timestamps
bisa di set ke false jika tidak digunakan
Contoh seeder untuk bikin user pertama
File: database/seeders/DatabaseSeeder.php
public function run(): void
{
User::create([
'nama' => 'Administrator',
'username' => 'admin',
'password' => password_hash('admin', PASSWORD_DEFAULT),
]);
}
Menjalankan seeder
php artisan db:seed