Laravel,sync()-如何同步数组并传递其他数据透视字段?
Laravel官方文档具有以下sync()
功能:
$user->roles()->sync( array( 1, 2, 3 ) );
您还可以将其他数据透视表值与给定的ID相关联:
$user->roles()->sync( array( 1 => array( 'expires' => true ) ) );
在后一个示例中,仅添加了一个枢轴行。我不明白的是,如果要同步的行多,如何关联其他数据透视表记录?
提前致谢。
回答:
为了sync
与自定义数据透视表一起使用多个模型,您需要:
$user->roles()->sync( array( 1 => array( 'expires' => true ),
2 => array( 'expires' => false ),
...
));
就是
sync( array( related_id => array( 'pivot_field' => value ),
...
));
编辑
回答评论:
$speakers = (array) Input::get('speakers'); // related ids$pivotData = array_fill(0, count($speakers), ['is_speaker' => true]);
$syncData = array_combine($speakers, $pivotData);
$user->roles()->sync($syncData);
以上是 Laravel,sync()-如何同步数组并传递其他数据透视字段? 的全部内容, 来源链接: utcz.com/qa/406605.html