先说结论,验证过程在下面:
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.尝试添加对象数组,建立关联
结果:
添加失败!
这篇博客探讨了Laravel框架中,模型关联方法attach, save, sync的参数类型验证。attach能接受单个ID、对象及ID数组,但不支持对象数组;save能接受单个对象,而对象数组需用saveMany;sync仅接受ID数组,尝试添加对象或对象数组会导致错误。"
117738280,10296953,Android内存优化:ArrayMap、SparseArray与SparseIntArray解析,"['Android开发', '数据结构', '内存管理']
718





