我正在尝试用以下内容更新我的数据透视表。
// Controller
if ( Input::has( 'roles' ) )
{
$user = $this->user->find( $id );
$user->roles()->sync( Input::get('roles') );
return Redirect::back()->with( 'success', 'You have successfully updated the user' );
}
// Model
public function roles()
{
return $this->belongsToMany('Roles', 'users_roles', 'user_id', 'role_id');
}
当用户更新他们的角色时,它运行良好,但是只有1条记录被更新或写入,并且role_id为0。
我做错了什么?有人能帮忙吗?
谢谢
问题是我没有通过sync方法传递整数数组,所以我将其修改为…
$user->roles()->sync( array_keys( Input::get( 'roles' ) ) );
感谢@alexrussell