Laravel Update Model and Relationship Data at the Same Time

Hello, sometimes we need to update model & relationship tables data at the same time. We can do it very easily using Laravel eloquent. Let’s see:

Table of Contents

  1. Set Relationship
  2. Update Data

Set Relationship

I’m going to setup relationship in User model with Country table.


namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class User extends Model
     * Get the country associated with the user.
    public function country()
        return $this->hasOne(Country::class);

Update Data

Using push() method, we can update model & relationship date. Have a look at the example:

// test
$user = User::find(1);
$user->name = "Md Obydullah";
$user->country->name = "Bangladesh";

// on form submit
$user = User::find($request->id);
$user->name = $request->name;
$user->country->name = $request->country_name;

That’s all, artisans. Thanks for reading.