请问多对多模型关联,怎么在保存时,给中间表附加字段设定默认值?

这是个自关联的多对多情况:表A中的记录相互之间有不同类别的排斥;
现在中间表中有一个额外的type字段,我怎么才能在保存时给中间表的这个type字段设置默认值?

public function A1()
{
    return $this->belongsToMany(A::class, 'relation_table', 'main_id', 'secondary_id')->withPivot('type')->wherePivot('type', 1);
}

public function A2()
{
    return $this->belongsToMany(A::class, 'relation_table', 'main_id', 'secondary_id')->withPivot('type')->wherePivot('type', 2);
}

// 我怎么在save的时候将这个对应的A1和A2的type值给设置上去? 我尝试使用attach方法,不过没有起到作用 - -!
public function save () { 

    return parent::save();
}

非常感谢~~

ATian
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 1

在中间表上保存额外数据
当处理多对多关联时,save 方法还可以使用第二个参数,它是一个属性数组,包含插入到中间表的额外字段数据。

App\User::find(1)->roles()->save($role, ['expires' => $expires]);

文档里有

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!