Reputation: 7138
I am trying to use sync method in pivot relationship but it does not save data correctly.
organization_id
and user_id
User
public function organization()
{
return $this->hasOne(Organization::class, 'superAdmin_id', 'id');
}
public function organizationAdmins()
{
return $this->hasOne(OrganizationAdmin::class, 'organization_admins', 'user_id', 'id');
}
Organization
public function superAdmin()
{
return $this->belongsTo(User::class, 'superAdmin_id', 'id');
}
public function admins()
{
return $this->belongsToMany(OrganizationAdmin::class, 'organization_admins', 'organization_id', 'id');
}
OrganizationAdmin
public function organization()
{
return $this->belongsToMany(Organization::class, 'organization_admins', 'id', 'organization_id');
}
public function user()
{
return $this->belongsTo(User::class);
}
Controller
public function update(Request $request, $id)
{
//...
$organization->save();
$admins = $request->input('user_id');
$organization->admins()->sync($admins); //saving admins in pivot table
}
Result
This is what saves in database info of user wont save
Any idea?
Upvotes: 2
Views: 1744
Reputation: 1763
Use this
public function admins()
{
return $this->belongsToMany(OrganizationAdmin::class, 'organization_admins', 'organization_id', 'user_id')->withTimestamps();
}
For more information read Many to many eloquent relationships
Upvotes: 0
Reputation: 8618
Fix this
Organization
public function admins()
{
return $this->belongsToMany(OrganizationAdmin::class, 'organization_admins', 'organization_id', 'user_id');
}
Upvotes: 1