How to Delete data in Multiple Tables (with Relationship) Laravel.

To delete data from database with with relationship with two tables in Laravel we have to use the solution that I’ve used.

Now, Question is Where and when we use this Method ?

Lets Discuss, what problems that i faced and how Solved it.

In my project, I’ve two Tables in Database 1st is my Users table where users data is stored. See the below image :-

and 2nd is SocialProviders where users Provider ID is stored (whenever a user login with google, Facebook, etc then unique provider_id is stored to verify the users ) with user_id to find that which provider is for which user. See the below image :-

and whenever I Delete a user then I have to delete User data from both Users table and SocialProviders table for that user.

Now, My problem is that I am not able to delete the User data from SocialProviders table but users table data is deleted and when the user re-login with the same Email ID then an error occurs.

So, I’ve used a function in my delete function to delete the data from both the table when I delete the User. See the Below Code of Mine :-

Now, Understand What is written in the code and how it’s work.

I’m Providing the image of code to explain better

In my users table, I’ve used leftJoin method to declare that in social_providers table, users id is equal to social_providers user_id (relationship established between them), where users id is equal to the $id (Variable id) and variable id is passed in the destroysr function which returns the users id for which I’ve called the destroy function. So it will delete the data from both the tables for that user.

I hope it will help you and if you want to learn about Join method then go to Official Source from Here

Thanks ??