Laravel Relationship: Memanggil data dari database lain berdasarkan localkey
Implementasi relasi database di Laravel dengan kunci lokal kustom. Pelajari cara memanggil data antar tabel berdasarkan field pengguna_id.
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
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.
<?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.
<?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.