写在最前:可能是我没搞懂怎么用,但是我好像确实没找到。
简单阐述:和Laravel表现尽量一致。
使用场景:
有些时候,在启用软删除的时候,我们会用上有则更新,被软删除则恢复,没有则创建的这个功能。经过我测试,withTrashed()直接返回的是查询构建器,而updateOrCreate是绑定在原生构建上而不是查询构建器上,因此就找不到方法了。
我认为的话,例如updateOrCreate应该是绑定在和first/firstOrFail/get这种一样,应该是作为查询构造器里的方法,用于编译sql和生成结果的。并且,使用这些方法的人自己也应该清楚意识到这是执行2次操作。
我认为,对于例如updateOrCreate,即形如:
model.newQuery().where("id","1").updateOrCreate(model1,model2);
这段代码期望的是:查询条件和Laravel一致,即包含where的条件和model1的条件,但创建也好更新也好,都用model1+model2的数据。既不包含where,也不改变软删除状态。
希望作者大大能更新一下这部分QwQ
写在最前:可能是我没搞懂怎么用,但是我好像确实没找到。
简单阐述:和Laravel表现尽量一致。
使用场景:
有些时候,在启用软删除的时候,我们会用上有则更新,被软删除则恢复,没有则创建的这个功能。经过我测试,withTrashed()直接返回的是查询构建器,而updateOrCreate是绑定在原生构建上而不是查询构建器上,因此就找不到方法了。
我认为的话,例如updateOrCreate应该是绑定在和first/firstOrFail/get这种一样,应该是作为查询构造器里的方法,用于编译sql和生成结果的。并且,使用这些方法的人自己也应该清楚意识到这是执行2次操作。
我认为,对于例如updateOrCreate,即形如:
model.newQuery().where("id","1").updateOrCreate(model1,model2);这段代码期望的是:查询条件和Laravel一致,即包含where的条件和model1的条件,但创建也好更新也好,都用model1+model2的数据。既不包含where,也不改变软删除状态。
希望作者大大能更新一下这部分QwQ