Menggunakan Select Option Relasi Tabel Pegawai ke Tabel Jabatan Laravel 8

 Assalamualaiku, warahmatullahi, Wabarokatuh..

Selamat pagi temen-temen semua, kali ini admin mau share tutorial cara menggunakan select option relasi tabel pegawai ke tabel jabatan pada laravel 8.

Baiklah, langsung saja, apa yang kita inginkan adalah seperti pada gambar berikut:

Bagaimana cara membuatnya, mari kita simak bersama langkah-langkahnya:

1. Didalam sebuah view pegawai tambah.blade.php isinya adalah:
                              <div class="form-group">
                                <label for="jabatan_id">Jabatan</label>
                                <select name="jabatan_id" class="form-control" required="required">
                                    <option value=""> - Pilih - </option>
                                    @foreach ($jabatans as $item)
                                    <option value="{{$item->id}}">{{$item->nama_jabatan}}</option>
                                    @endforeach
                                </select>
                              </div>

2. Didalam sebuah controller PegawaiController.php isinya adalah:

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use App\Models\Pegawai;
use App\Models\Jabatan;

class PegawaiController extends Controller
{
    public function pegawai()
    {
        // mengambil data dari table pegawai + relasinya dengan jabatab
        $dataPegawai = Pegawai::with('jabatan')->simplePaginate(2);
        //dd('pegawai');

        // mengirim data pegawai ke view prgawai
        return view('pegawai.pegawai',compact('dataPegawai'));
    }
    
    // method untuk menampilkan view form tambah pegawai
    public function tambah()
    {
        // memanggil view tambah
        $jabatans = Jabatan::all();
        return view('pegawai.tambah', compact('jabatans'));

    }
    
    // method untuk insert data ke table pegawai
    public function store(Request $request)
    {
        // insert data ke table pegawai
        DB::table('pegawai')->insert([
            'nama' => $request->nama,
            'alamat_rumah' => $request->alamat_rumah,
            'alamat_kantor' => $request->alamat_kantor,
            'umur' => $request->umur,
            'jabatan_id' => $request->jabatan_id
        ]);
        // alihkan halaman ke halaman pegawai
        return redirect('/pegawai');

    }

}

3. Didalam sebuah route web.php isinya adalah:
    Route::get('/pegawai/tambah', [PegawaiController::class, 'tambah'])->name('pegawai/tambah');

4. Didalam sebuah model Pegawai.php isinya adalah: 

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use App\Models\Jabatan;

class Pegawai extends Model
{
    protected $table = 'pegawai';
    protected $primaryKey = 'id';
    protected $fillable = [
    'id', 'nama', 'alamat_rumah', 'alamat_kantor', 'umur', 'jabatan_id',];
    
    public function jabatan(){
        return $this->belongsTo(Jabatan::class);
    }
}

5. Didalam sebuah model Jabatan.php isinya adalah: 

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use App\Models\Pegawai;

class Jabatan extends Model
{
    protected $table = 'jabatan';
    protected $primaryKey = 'id';
    protected $fillable = ['id', 'jabatan'];
    
    public function pegawai(){
        return $this->hasMany(Pegawai::class);
    }
}

6. Berikut ini untuk struktur tabel pegawai:

7. Berikut ini untuk struktur tabel jabatan:

Selesai.

Setelah kita melengkapi langkah-langkah diatas, untuk membuat select option pada laravel 8, harusnya kita sudah bisa menampilkan values yang diinginkan, kemudian kita juga sudah bisa insert relasi tabel jabatan tadi ke database.

Demikian tutorial select option pada laravel 8 ini admin sampaikan semoga bermanfaat.

Salam bahagia 😃

Wassalamualaiku, warahmatullahi, Wabarokatuh..

Post a Comment

0 Comments