Laravel 10 · January 30, 2024 0

Memahami Koneksi, Konfigurasi dan Migration Database Pada Laravel 10 #5

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:

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 di yoursite.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 sebagai nav-link.
  • :href="route('students')": Sintaks ini mengatur nilai dari href sebagai hasil dari pemanggilan fungsi route('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. Fungsi request()->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 :