【发布时间】:2015-02-09 10:27:39
【问题描述】:
我正在尝试像这样更新数据透视表:
public function updatePermission($id, $permissionId)
{
$permissionValue = Input::get('value');
$user = User::find($id);
$perms = ['value' => $permissionValue];
$user->permissions()->updateExistingPivot($permissionId, $perms);
}
此数据透视表之前已使用:
public function attachPermission($id)
{
$permissionId = Input::get('id');
$permissionValue = Input::get('value');
$user = User::find($id);
if (!$user->permissions->contains($permissionId)) {
$user->attachPermissionById($permissionId);
$perms = ['value' => $permissionValue];
$user->permissions()->updateExistingPivot($permissionId, $perms);
} else {
return Response::json(array('error' => 'Permission ' . $permissionId . ' is alreay set for user ' . $user->id));
}
return Response::json(array('role' => User::with(['roles.permissions', 'permissions', 'students'])->find($user->id)));
}
当 updatePermission() 方法被命中时,它可以正常通过,但它不会用新值更新数据透视表。我在这里做错了什么?
【问题讨论】:
-
你有没有让 updateExistingPivot 工作?
标签: laravel laravel-4 eloquent