Laravel Relationship: Memanggil data dari database lain berdasarkan localkey

Posted by yadi at Thursday, March 7, 2019 9:54 PM

Implementasi relasi database di Laravel dengan kunci lokal kustom. Pelajari cara memanggil data antar tabel berdasarkan field pengguna_id.

Laravel Relationship: Memanggil data dari database lain berdasarkan localkey

Table of Contents

Hi sobat yadi, sudah lama tidak update, beberapa hari ini sedang melakukan case tentang laravel relationship tentu saja menggunakan eloquent.

Permasalahannya seperti ini :

  • Table Posts:

    • id
    • pengguna_id
    • title
    • content
  • Table Users:

    • id
    • nama
    • email

Pada laravel, biasanya jika kita ingin menggunakan relationship, untuk table id user kita buat seperti “user_id” (menggunakan primary key id pada table users), tentu saja tidak ada masalah disini, permasalahan yang saya temukan ketika local key nya tidak bername user_id , seperti contoh diatas, namanya pengguna_id.

Hasil yang di inginkan

Ketika list post, maka akan muncul detail pembuat post, yaitu berdasarkan dari pengguna_id , dimana pengguna_id akan terhubung (relasi) dengan table users.

Oleh sebab itu, kita bisa membuat beberapa settingan pada model Post laravel yang ingin kita gunakan.

code
<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    public function User()
    {
        return $this->belongsTo('App\User', 'pengguna_id');
    }
}

Untuk memanggil hasil dari diatas, kita gunakan pada controller seperti ini.

code
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class TestController extends Controller
{
    public function index()
    {
        $posts = Post::with('user')->get();
        return $posts;
    }
}

Kemudian hasil akhir yang ingin dicapai seperti berikut:

ini juga bisa diterapkan ke relation-relation yang lainnya jika key nya bukan dari primary key.

Semoga bermanfaat.

Categories: laravel