2015-02-07 49 views
0
class User extends \Eloquent { 
public function cards() { 
     return $this->belongsToMany('Card','user_card')->withPivot('sort')->orderBy('user_card.order', 'asc'); 
    } 

} 

我可以通過$user->sync(Input::get("card_ids",[]))附加卡但我打牆試圖找出如何更新樞軸值「排序」是的array_keys(Input::get("card_ids",[])) [基本用戶提交他們的順序]值如何使用透視值同步多對多?

這可能與雄辯?

回答

1

用於同步樞列的語法是:

$user->roles()->sync(array(1 => array('expires' => true))); 

爲了實現這一目標可以先用array_flip切換與值的鍵,然後array_map以需要的格式,以使值:

$cards = Input::get('card_ids', []); 
$cards = array_flip($cards); 
$cards = array_map(function($sort){ 
    return array('sort' => $sort); 
}, $cards); 
$user->cards()->sync($cards); 
+0

哇,真高興它那麼幹淨優雅,謝謝! – Moak 2015-02-07 20:48:42

+0

不客氣:) – lukasgeiter 2015-02-07 20:49:17