Skip to main content

Eloquent Relationship Explained (ONE TO MANY)

Suppose you have two tables:

users and posts tables.

users table includes:
id,name,email

posts table includes:
id,title,body,user_id

One to many relationship:

Go to User model and write:


public function posts(){
 return $this->hasMany('App\Post');
}

Look at the function naming convention. It's plural as it is one to many relationship.

Store:

$user->posts()->save($post);

Here, $user variable comes from findorfail($id). and $post variable has taken the
requested data from user. I haven't shown all of this in details here as it is only to
understand how one to many relationship actually works.


Show:
foreach($user->posts as $post){
   echo $post->title."<br>";
}

Update:
$user->posts()->where('id','=',2)->update(['title'=>'your updated title','body'=>'your updated body');

Delete:
$user->posts->whereId(1)->delete();

To delete all the users posts:
$user->posts->delete();


Thanks for reading.


Comments