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 - Versi terbaru Laravel akan di install, tapi tergantung versi php yang digunakannya juga
composer create-project laravel/laravel:^11.0 nama-project
- Laravel versi 11 akan ter-install di folder
nama-project - Digunakan jika ingin install versi tertentu
Pengaturan .env
APP_URL=http://namaproject.test
DB_DATABASE=namadatabase
DB_USERNAME=root
DB_PASSWORD=
-
APP_URLdi 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
-
freshuntuk menghapus semua tabel di database dan melakukan migrate ulang rollbackuntuk membatalkan migration terakhir-
refreshuntuk 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_atdanupdated_atmaka 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);
}
}
-
$guardeddigunakan sebagai kebalikan dari$fillable, jadi semua bisa diisi kecuali atributid -
$fillablebisa digunakan untuk memilih atribut mana saja yang bisa diisi $timestampsbisa 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
Posting Komentar