dev-resources.site
for different kinds of informations.
How to update a one-to-many relationship in Laravel?
Published at
9/18/2023
Categories
laravel10
eloquent
relationships
howto
Author
devmahmoudadel
Author
14 person written this
devmahmoudadel
open
Update data using the user form.
1- Using push method
.
- First go to
routes/web.php
file and modify this route:
Route::get('/users/update', method () {
$user = User::with('posts')->find(1);
$post = $user->posts()->whereId(1)->first();
$post->title = 'Post title 1 updated';
$post->push();
return response()->json($user);
});
- We open the browser and go to the new URL
http://127.0.0.1:8000/users/update
to find that the post has been updated successfully.
{
"id": 1,
"username": "John Doe",
"created_at": "2023-09-06T17:24:02.000000Z",
"updated_at": "2023-09-06T17:25:58.000000Z",
"posts": [
{
"id": 1,
"title": "Post title 1 updated",
"body": "Post body 1",
"user_id": 1,
"created_at": "2023-09-06T17:28:58.000000Z",
"updated_at": "2023-09-06T18:37:30.000000Z"
},
{
"id": 5,
"title": "Post title 5",
"body": "Post body 5",
"user_id": 1,
"created_at": "2023-09-06T17:29:49.000000Z",
"updated_at": "2023-09-06T17:29:49.000000Z"
},
{
"id": 6,
"title": "Post title 6",
"body": "Post body 6",
"user_id": 1,
"created_at": "2023-09-06T17:29:49.000000Z",
"updated_at": "2023-09-06T17:29:49.000000Z"
}
]
}
2- Using update method
.
- First go to the file
routes/web.php
and modify this route.
Route::get('/users/update', method () {
$user = User::with('posts')->find(1);
$post = $user->posts()->whereId(1)->first();
$post->title = 'Post title 1';
$post->update();
return response()->json($user);
]);
- We open the browser and go to the new URL
http://127.0.0.1:8000/users/update
to find that the post has been updated successfully.
{
"id": 1,
"username": "John Doe",
"created_at": "2023-09-06T17:24:02.000000Z",
"updated_at": "2023-09-06T17:25:58.000000Z",
"posts": [
{
"id": 1,
"title": "Post title 1",
"body": "Post body 1",
"user_id": 1,
"created_at": "2023-09-06T17:28:58.000000Z",
"updated_at": "2023-09-06T18:41:35.000000Z"
},
{
"id": 5,
"title": "Post title 5",
"body": "Post body 5",
"user_id": 1,
"created_at": "2023-09-06T17:29:49.000000Z",
"updated_at": "2023-09-06T17:29:49.000000Z"
},
{
"id": 6,
"title": "Post title 6",
"body": "Post body 6",
"user_id": 1,
"created_at": "2023-09-06T17:29:49.000000Z",
"updated_at": "2023-09-06T17:29:49.000000Z"
}
]
}
Update data using the post form.
1- Using push method
.
- First go to
routes/web.php
file and add this route:
Route::get('/posts/update', method () {
$post = Post::with('user')->find(1);
$post->title = 'Post title 1 updated';
$post->user->username = 'John Doe Updated';
$post->push();
return response()->json($post);
});
- We open the browser and go to the new URL
http://127.0.0.1:8000/posts/update
to find that the post has been updated successfully.
{
"id": 1,
"title": "Post title 1 updated",
"body": "Post body 1",
"user_id": 1,
"created_at": "2023-09-06T17:28:58.000000Z",
"updated_at": "2023-09-06T18:50:30.000000Z",
"user": {
"id": 1,
"username": "John Doe Updated",
"created_at": "2023-09-06T17:24:02.000000Z",
"updated_at": "2023-09-06T18:49:54.000000Z"
}
}
2- Using update method
.
- First go to the file
routes/web.php
and modify this route.
Route::get('/posts/update', method () {
$post = Post::with('user')->find(1);
$post->user->username = 'John Doe';
$post->update([
'title' => 'Post title 1'
]);
return response()->json($post);
]);
- We open the browser and go to the new URL
http://127.0.0.1:8000/posts/update
to find that the post has been updated successfully.
{
"id": 1,
"title": "Post title 1",
"body": "Post body 1",
"user_id": 1,
"created_at": "2023-09-06T17:28:58.000000Z",
"updated_at": "2023-09-06T18:55:45.000000Z",
"user": {
"id": 1,
"username": "John Doe",
"created_at": "2023-09-06T17:24:02.000000Z",
"updated_at": "2023-09-06T18:49:54.000000Z"
}
}
- You can find the repo of this series on github here
eloquent Article's
30 articles in total
Laravel Eloquent ORM in Bangla Part-3 (Models Retrieving)
read article
Prunable Eloquent Models
read article
Creating a Mini Blog API with Lithe and Eloquent
read article
Criando uma API de Mini Blog com Lithe e Eloquent
read article
Understanding Self-Relationships in Laravel Models: A Simple Guide
read article
Eloquent Trick: Laravel Model from Subquery
read article
Eloquent ORM: Accessor and Mutator
read article
Implementing User Suspension in Your Laravel Application
read article
Streamlining Eloquent Queries: Mastering User Scopes and Global Scopes in Laravel
read article
Getting data from resource responses before sending it to the client
read article
Including extra meta data with a resource response
read article
A Quick Intro To Eloquent Observers
read article
Customizing API Resource Pagination Structure
read article
What’s New in Laravel 11?
read article
Observing your integrity
read article
Laravel route binding for finite objects
read article
Simplify Slug Creation for Eloquent Models in Laravel
read article
Laravel: API Resources: With or Without "data"?
read article
Optimizing Laravel Eloquent queries
read article
Using Laravel push method to update your model and its relationships
read article
Laravel101: Exploring Entity-Model Relationships
read article
How to delete data from one to many relationship in Laravel?
read article
How to update a one-to-many relationship in Laravel?
currently reading
How can you retrieve data from a one-to-many relationship in Laravel?
read article
How to insert data in one to many relationship in database?
read article
How to create a One-To-Many relationship in Laravel?
read article
How to delete data from one to one relationship in Laravel?
read article
How to update a one-to-one relationship in Laravel?
read article
How can you retrieve data from a one-to-one relationship in Laravel?
read article
How to insert data in one to one relationship in database?
read article
Featured ones: