Juni Yadi
Juni Yadi
| 1 minutes to read

Laravel Relationship: Memanggil data dari database lain berdasarkan localkey


Laravel Relationship: Memanggil data dari database lain berdasarkan localkey

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.

1
2
3
4
5
6
7
8
9
10
11
12
13
<?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.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?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.


Posted at:
Categories: #programing

comments powered by Disqus