Laravel 4.2在createOrUpdate和类似方法上强制分配质量?

时间:2016-02-04 17:25:00

标签: validation laravel laravel-4 model mass-assignment

我已经在API上工作了一段时间,现在有一种软的“软”。 api验证,所以我可以更容易地在前端使用Backbone。基本上,设计主体一直只是验证和更新我们关心的返回属性。在后端,我使用模型的可填充数组在验证输入数组后对此进行限制。这样我们就不会在人们意外发回我们不允许他们触摸的模型数据时惹恼他们,因为文档清楚地说明了什么是可填写的。人们似乎喜欢使用API​​。

我们遇到的问题是一个问题,因为我们想要使用像' createOrUpdate'对于我们自动创建或更新模型的后端内容。基本上我们最终会向fillable添加与我们面向输入验证的用户相关的东西。围绕我遇到的文档进行跋涉&force;强制填写'和其他各种各样的力量'方法,但注意到他们在更神奇的方法中缺失了,比如' createOrUpdate'。看起来它们应该是方法,或至少可以传递给强制方法的布尔标志,也许这些选项内置在Laravel 5 +中?

在我开始在基地编写我自己的方法之前,我只是想问一下这是否已经内置于4.2并且我只是错过了它?我也想创建这个帖子,因为它可能会让人们对Laravel的大规模分配工作感到困惑。

如果我没有得到任何反馈,我可能会删除它。

1 个答案:

答案 0 :(得分:1)

Model::unguard();在4.2中提供的https://laravel.com/docs/5.1/seeding 中添加了

您只需在创建对象之前调用它,然后就可以使用createOrUpdate()firstOrNew()create()等填写任何字段。

更正,此处位于L4.2 API中:https://laravel.com/api/4.2/Illuminate/Database/Eloquent/Model.html#method_unguard

另见:Model::reguard()