2015-02-07 50 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