2014-06-30 50 views
0

我想用以下更新我的數據透視表。使用同步更新與Laravel的關係的透視表

// 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

我在做什麼錯?誰能幫忙?

由於

+0

據推測'Input :: get('roles)'返回一個'array ',所有這些都是有效的'role_id's?如果不是,那可能是你的問題。 – alexrussell

+0

@alexrussell有時我看不到樹木,它不是它返回的整數數組,這是我的問題!謝謝男人 – bencarter78

+0

呵呵沒問題。你也應該接受你的答案,所以它被標記爲正式答案。 – alexrussell

回答

1

的問題是,我沒有傳遞整數數組通過到同步方法,所以我修正這...

$user->roles()->sync(array_keys(Input::get('roles'))); 

由於@alexrussell