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.
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
Post a Comment