Try do a foreach before delete adress.
foreach($post->users() as $user)
{
$user->adress()->delete();
}
Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.
hi,
I have a 3 Models and 3 tables :
Post Model :
public function users()
{
return $this->hasMany(User::class);
}
User Model :
public function adress()
{
return $this->belongsTo('App\Adress', 'adress_id');
}
And User table like this :
id - post_id - adress_id
When i try to delete post below code works good and deletes users too:
$post = Post::findOrFail($id);
$post->users()->delete();
$post->delete();
But when i delete Post i want to delete Adress tables too which belongs to users.
I have tried something like this :
$post->users()->adress()->delete();
but didnt work. How can i delete them ?
Try do a foreach before delete adress.
foreach($post->users() as $user)
{
$user->adress()->delete();
}
Please or to participate in this conversation.