Hampir setiap aplikasi web modern berinteraksi dengan database. Laravel membuat interaksi dengan database menjadi sangat sederhana di berbagai database yang didukung menggunakan raw SQL, a fluent query builder, dan ORM Eloquent. Saat ini, Laravel menyediakan dukungan pihak pertama untuk lima database:
- MariaDB 10.2+ (Version Policy)
- MySQL 5.7+ (Version Policy)
- PostgreSQL 10.0+ (Version Policy)
- SQLite 3.8.8+
- SQL Server 2017+ (Version Policy)
Didalam laravel sudah memiliki tabel bawaan yang bisa kita gunakan, cara untuk memanggilnya adalah dengan :
php artisan migrate
Dan langkah awal untuk membuat migrasi database sudah dilakukan bersamaan dengan membuat model Students dan sudah di bahas pada
Langkah selanjutnya buka file migrasi Student
database/migrations/2024_01_30_015431_create_students_table.php
dan sesuaikan isi file nya seperti code berikut :
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class() extends Migration {
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('students', function (Blueprint $table) {
// $table->id();
$table->char('idstudents', 7);
$table->string('fullname', 100);
$table->enum('gender', ['M', 'F']);
$table->string('address', 100);
$table->string('emailaddress', 100);
$table->char('phone', 20);
$table->primary('idstudents');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('students');
}
};
Selanjutnya kita akan edit Model Students
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Students extends Model
{
use HasFactory;
protected $table = 'students';
protected $primaryKey = 'idstudents';
// mematikan autoincrement
public $incrementing = false;
public $timestamps = true;
}
Kemudian jalankan code di terminal
php artisan migrate
Setelah selesai, selanjutnya kita akan menambahkan route baru untuk menampilkan data yang ada pada tabel students di database.
Langkah awal silahkan buka file web.php, lalu buat route students dan di labeli dengan nama students seperti code berikut :
Route::get('/students', function () {
return view('students');
})->name('students');
Penjelasan :
Pada kode di atas:
Route::get
adalah cara Laravel untuk mendefinisikan rute baru.get
merujuk pada metode HTTP GET, salah satu metode yang paling umum digunakan untuk membuat rute.'/students'
adalah URL atau endpoint dari rute tersebut. Jadi saat pengguna mengunjungi situs web Anda diyoursite.com/
students, mereka akan diarahkan ke rute ini.- Fungsi anonim
function () { return view('students'); }
adalah apa yang disebut sebagai “Closure” atau callback. Fungsi ini akan dipanggil ketika rute diakses. Fungsi ini mengembalikan tampilan (view) dengan nama ‘students’. ->name('students')
memberikan nama ke rute ini. Penamaan rute ini sangat bermanfaat untuk membangun link ke URL spesifik tersebut dalam kode Anda, tanpa harus mengetik URL secara manual.
Jadi, secara keseluruhan, kode ini menginstruksikan aplikasi Laravel Anda untuk merender tampilan ‘about’ ketika pengguna mengakses yoursite.com/
students dalam browser mereka.
Selanjutnya pada tambahkan file students.blade.php pada folder views, lalu tuliskan baris code seperti dibawah ini :
<x-app-layout>
<x-slot name="header">
<h2 class="font-semibold text-xl text-gray-800 leading-tight">
{{ __('Dashboard') }}
</h2>
</x-slot>
<div class="py-12">
<div class="max-w-7xl mx-auto sm:px-6 lg:px-8">
<div class="bg-white overflow-hidden shadow-sm sm:rounded-lg">
<div class="p-6 text-gray-900">
<h4>Halaman Students</h4>
</div>
</div>
</div>
</div>
</x-app-layout>
Kemudian tambahkan menu navigasi pada file navigation.blade.php yang ada pada folder views/layouts seperti code berikut :
<x-nav-link :href="route('students')" :active="request()->routeIs('students')">
Student
</x-nav-link>
Penjelasan :
<x-nav-link :href="route('students')" :active="request()->routeIs('students')"> Students </x-nav-link>
Bagian ini adalah Laravel Blade component. Bila dipecah, berikut penjelasan untuk masing-masing bagian:
<x-nav-link>
: Memanggil komponen Blade yang ditandai sebagainav-link
.:href="route('students')"
: Sintaks ini mengatur nilai darihref
sebagai hasil dari pemanggilan fungsiroute('students')
, yang berarti URL dari rute yang diberi nama ‘students’ akan digunakan.:active="request()->routeIs('students')"
: Menentukan apakah rute saat ini (‘students’) adalah rute yang aktif. Fungsirequest()->routeIs('students')
mengembalikan nilai true atau false, tergantung pada apakah rute yang sedang diakses pengguna adalah rute ‘students’ atau bukan.Students </x-nav-link>
: “Students” adalah teks tautan yang dilihat pengguna.</x-nav-link>
adalah penutup dari tag komponen.
Jadi Kode ini menghasilkan link navigasi ke halaman ‘Students’. Jika pengguna sedang berada di halaman tersebut, link ini akan ditandai sebagai link ‘aktif’.
Maka hasilnya adalah sebagai berikut :