Eloquent Relationship

Relasi One to one

erd one to one

Model

app/User.php

class User extends model
{
  public function profile(){
    return $this->hasOne('App\Profile');
  }
}

berfungsi membuat fungsi yang bernama profile yang memiliki method hasOne yang berfungsi membuat relasi user memiliki setiap satu user memiliki satu profile

app/Profile.php

class profile extends model
{
  public function user(){
    return $this->belongsTo('App\User');
  }
}

berfungsi membuat fungsi yang bernama user yang memiliki method belongsTo yang berfungsi membuat relasi profile dimiliki oleh user

Route

routes/web.php

Route::get('user','UserController@index');

Controller

App/controller/UserController.php

....
use App\User;

class UserController extends Controller
{
  public function index(){
    $user=User::all();
    return view('user', compact('user'));
  }
}

View

resource/views/user.blade.php

...
<h3>One to one</h3>
<table>
  <thead>
   <tr>
    <th>username</th>
    <th>email</th>
    <th>nama</th>
   </tr>
  <tbody>
   @foreach($user as $value)
   <tr>
    <td>{{$value->username}}</td>
    <td>{{$value->email}}</td>
    <td>{{$value->profile->name}}</td>
   </tr>
   @endforeach
  <tbody>
  </thead>
</table>
...

<td>{{$value->profile->name}} berfungsi menampilkan data name dari table profile berdasarkan method profile pada model App/user/php

Relasi One to Many

erd one to many

Model

app/Kategori.php

class Kategori extends Model{
  public function buku()
  {
   return $this->hasMany('App\Buku');
  }  
}

berfungsi membuat fungsi yang bernama buku yang memiliki method hasMany yang berfungsi membuat relasi kategori memiliki banyak buku

app/Buku.php

class Buku extends Model{
  public function kategori()
  {
    return $this->belongsTo('App\Kategori');
  }
}

Route

routes/web.php

Route::get('kategori','KategoriController@index');

Controller

app/controller/KategoriController.php

...
use App\Kategori;
class KategoriController extends Controller{
  public function index()
  {
   $kategori=Kategori::all();
   return view('kategori',compact('kategori'));
  }
}

View

resource/views/kategori.blade.php

...
<h3>One to Many</h3>
<table>
  <thead>
   <tr>
    <th>kategori</th>
    <th>title</th>
   </tr>
  <tbody>
   @foreach($kategori as $value)
   <tr>
    <td>{{$value->name}}</td>
    <td>
       @foreach($value->buku as $b)
       {{$b->title}}
       @endforeach
    </td>
   </tr>
   @endforeach
  <tbody>
  </thead>
</table>
...

Relasi Many to Many

Model

App/Transaksi.php

class Transaksi extends Model{
  public function pelanggan()
  {
   return $this->belongsToMany('App\Pelanggan');
  }  
  public function barang()
  {
   return $this->belongsToMany('App\Barang');
  }
}

public function pelanggan() { return $this->belongsToMany(‘App\Pelanggan’); }

berfungsi membuat fungsi yang bernama pelanggan yang memiliki method belongsToMany yang berfungsi membuat relasi Transaksi dimiliki oleh banyak Pelanggan

Last updated

Was this helpful?