DEV Community

Hilmi Hidayat
Hilmi Hidayat

Posted on • Originally published at divisidev.com on

Laravel Tips: hasMany Relationship

Laravel hasMany Relationship - Dengan menggunakan eloquent pada laravel project, akan sangat membantu sekali dalam menghubungkan antara table A dengan table B, serta dapat mempersingkat penulisan code. Contohnya, jika kamu mempunyai table users yang berelasi dengan table posts.

Post::create([
  'user_id' => auth()->user()->id,
  'title' => request('title'),
  'body' => request('body'),
]);
Enter fullscreen mode Exit fullscreen mode

Mungkin kamu biasanya menulis code seperti di atas untuk melakukan insert data ke table posts dengan value user_id yang diambil dari id user yang melakukan action tersebut. Sebenarnya, ada cara penulisan code yang lebih sederhana untuk melakukan hal tersebut, yaitu menggunakan eloquent. Caranya dengan membuat relasi antar model terlebih dahulu seperti contoh di bawah ini.

User.php

public function posts()
{
    return $this->hasMany(Post::class);
}
Enter fullscreen mode Exit fullscreen mode

kamu bisa membuat hasMany relationship pada User model seperti contoh di atas yang mengarah ke Post model.

Post.php

public function user()
{
    return $this->belongsTo(User::class);
}
Enter fullscreen mode Exit fullscreen mode

dan menambahkan method user() yang berelasi dengan User model pada Post model seperti contoh code di atas.

auth()->user()->posts()->create([
  'title' => request('title'),
  'body' => request('body'),
]);
Enter fullscreen mode Exit fullscreen mode

Nah, selanjutnya kamu hanya perlu menulis code seperti di atas untuk melakukan insert data ke table posts dengan value user_id yang diambil dari id user yang melakukannya tersebut. Jauh lebih sederhana kan ?

Top comments (0)