Martney Acha
Martney Acha

Reputation: 3002

Updating Pivot Table Laravel 5.4

I'm trying to save my Pivot but nothing happened, it doesnt prompt any error I dunno where to debug cause there is no prompt, any idea ? attached here is my code.

Controller note: Email and Name is updating properly.

public function update(Request $request, User $User)
    {
        $user=auth()->user();

        $User->name             = $request->get('name');
        $User->email            = $request->get('email');
        $User->warehouse_id     = $request->get('warehouse_id');
        $User->role_id          = $request->get('role_id');

        $User->save();

        $User->roles()->updateExistingPivot($request->get('role_id'), ['role_id' => $request->get('role_id')]);

        $User->warehouse()->updateExistingPivot($request->get('warehouse_id'), ['warehouse_id' => $request->get('warehouse_id')]);

        return redirect()->route('user.index');
    }

Model for relationship

Warehouse

class Warehouse extends Model
{
    protected $fillable = ['warehouse','warehouse_description','created_by'];

    public $primaryKey='id';

    public function users()
    {
        return $this->belongsToMany(User::class);
    }
}

User

public function roles()
{
    return $this->belongsToMany(Role::class);
}

public function warehouse()
{
    return $this->belongsToMany(Warehouse::class);
}

Role

class Role extends Model
{
    protected $fillable = ['role'];

    public $primaryKey='id';

    public function users()
    {
        return $this->belongsToMany(User::class);
    }
}

Upvotes: 2

Views: 112

Answers (1)

Martney Acha
Martney Acha

Reputation: 3002

What I did was putting isnerting the previews id before yusing updateExistingPivot

Here is my Controller

public function update(Request $request, User $User) {

    $User->name             = $request->get('name');
    $User->email            = $request->get('email');
    $User->warehouse_id     = $request->get('warehouse_id');
    $User->role_id          = $request->get('role_id');

   $User->roles()->updateExistingPivot($User->role_id, ['role_id' => $request->get('role_id')]);

    $User->warehouse()->updateExistingPivot($User->warehouse_id, ['warehouse_id' => $request->get('warehouse_id')]);

    $User->save();

    return redirect()->route('user.index');
}

Upvotes: 1

Related Questions