laravel 同步无法保存数据
laravel sync can't save data
我正在尝试在数据透视关系中使用同步方法,但它没有正确保存数据。
逻辑
- 组织可以有多个管理员
- 用户只能是 1 个组织的管理员
表
- 用户
- 组织
- organization_admins // 保存
organization_id
和 user_id
型号
用户
public function organization()
{
return $this->hasOne(Organization::class, 'superAdmin_id', 'id');
}
public function organizationAdmins()
{
return $this->hasOne(OrganizationAdmin::class, 'organization_admins', 'user_id', 'id');
}
组织
public function superAdmin()
{
return $this->belongsTo(User::class, 'superAdmin_id', 'id');
}
public function admins()
{
return $this->belongsToMany(OrganizationAdmin::class, 'organization_admins', 'organization_id', 'id');
}
组织管理员
public function organization()
{
return $this->belongsToMany(Organization::class, 'organization_admins', 'id', 'organization_id');
}
public function user()
{
return $this->belongsTo(User::class);
}
控制器
public function update(Request $request, $id)
{
//...
$organization->save();
$admins = $request->input('user_id');
$organization->admins()->sync($admins); //saving admins in pivot table
}
结果
这是保存在数据库中的内容用户不会保存的信息
有什么想法吗?
解决这个问题
组织
public function admins()
{
return $this->belongsToMany(OrganizationAdmin::class, 'organization_admins', 'organization_id', 'user_id');
}
使用这个
public function admins()
{
return $this->belongsToMany(OrganizationAdmin::class, 'organization_admins', 'organization_id', 'user_id')->withTimestamps();
}
有关详细信息,请阅读 Many to many eloquent relationships
我正在尝试在数据透视关系中使用同步方法,但它没有正确保存数据。
逻辑
- 组织可以有多个管理员
- 用户只能是 1 个组织的管理员
表
- 用户
- 组织
- organization_admins // 保存
organization_id
和user_id
型号
用户
public function organization()
{
return $this->hasOne(Organization::class, 'superAdmin_id', 'id');
}
public function organizationAdmins()
{
return $this->hasOne(OrganizationAdmin::class, 'organization_admins', 'user_id', 'id');
}
组织
public function superAdmin()
{
return $this->belongsTo(User::class, 'superAdmin_id', 'id');
}
public function admins()
{
return $this->belongsToMany(OrganizationAdmin::class, 'organization_admins', 'organization_id', 'id');
}
组织管理员
public function organization()
{
return $this->belongsToMany(Organization::class, 'organization_admins', 'id', 'organization_id');
}
public function user()
{
return $this->belongsTo(User::class);
}
控制器
public function update(Request $request, $id)
{
//...
$organization->save();
$admins = $request->input('user_id');
$organization->admins()->sync($admins); //saving admins in pivot table
}
结果
这是保存在数据库中的内容用户不会保存的信息
有什么想法吗?
解决这个问题
组织
public function admins()
{
return $this->belongsToMany(OrganizationAdmin::class, 'organization_admins', 'organization_id', 'user_id');
}
使用这个
public function admins()
{
return $this->belongsToMany(OrganizationAdmin::class, 'organization_admins', 'organization_id', 'user_id')->withTimestamps();
}
有关详细信息,请阅读 Many to many eloquent relationships