Laravel 模型关联attach,save,sync方法参数类型验证
先说结论,验证过程在下面:
Laravel中,attach,save,sync方法参数类型
方法 | id | id数组 | 对象 | 对象数组 |
attach | √ | √ | √ | saveMany方法 |
save | √ | √ | ||
sync | √ | √ | √ |
使用tinker来验证laravel中save()方法,attach方法(),sync方法的参数区别:
首先,取得一个article对象,article和category的关系是多对多,我们先查看一下。此时article下只有1条category关联。
attach方法:
1.尝试添加id,建立关联
添加关联成功
2.尝试添加对象,建立关联
此时关联了2次id为3的category,数据正确。添加成功!
3.尝试添加id数组,建立关联
关联建立成功!
4.尝试添加对象数组,建立关联
添加失败!
Save()方法:
1.尝试添加id,建立关联
添加失败!
2.尝试添加对象,建立关联
添加成功!
3.添加对象数组,文档中表明需要用saveMany方法
sync()方法:
文档中写明了可以传id和id数组进去,我们在这里用id数组进行测试
1.添加id数组,建立关联
结果:
我们看到sync分别调用了attach方法,detach方法,update方法,关联成功!
2.尝试添加对象,建立关联
添加成功!
3.尝试添加对象数组,建立关联
结果:
添加失败!