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关联。

Laravel 模型关联attach,save,sync方法参数类型验证_第1张图片

attach方法:

1.尝试添加id,建立关联

Laravel 模型关联attach,save,sync方法参数类型验证_第2张图片

添加关联成功


2.尝试添加对象,建立关联


Laravel 模型关联attach,save,sync方法参数类型验证_第3张图片

此时关联了2次id为3的category,数据正确。添加成功!


3.尝试添加id数组,建立关联


Laravel 模型关联attach,save,sync方法参数类型验证_第4张图片

关联建立成功!

4.尝试添加对象数组,建立关联


添加失败!


Save()方法:

1.尝试添加id,建立关联


添加失败!


2.尝试添加对象,建立关联


Laravel 模型关联attach,save,sync方法参数类型验证_第5张图片

Laravel 模型关联attach,save,sync方法参数类型验证_第6张图片

添加成功!


3.添加对象数组,文档中表明需要用saveMany方法

Laravel 模型关联attach,save,sync方法参数类型验证_第7张图片


sync()方法:

文档中写明了可以传id和id数组进去,我们在这里用id数组进行测试

1.添加id数组,建立关联

Laravel 模型关联attach,save,sync方法参数类型验证_第8张图片
结果:
Laravel 模型关联attach,save,sync方法参数类型验证_第9张图片
我们看到sync分别调用了attach方法,detach方法,update方法,关联成功!

2.尝试添加对象,建立关联

Laravel 模型关联attach,save,sync方法参数类型验证_第10张图片
添加成功!



3.尝试添加对象数组,建立关联


结果:
Laravel 模型关联attach,save,sync方法参数类型验证_第11张图片

添加失败!



你可能感兴趣的:(laravel)