php – Laravel Dynamic Fillable in Models
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – Laravel Dynamic Fillable in Models,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1209字,纯文字阅读大概需要2分钟。
内容图文
在laravel 5.2中遇到了问题.
以下是eloquent创建操作(后调用)期间的错误,
Model.php 453中的批量分配异常:column_name
以下是要考虑的先决条件:
>模型中的Fillables通过以下代码以动态方式填充:
public function __construct() { $this->fillable(\Schema::getColumnListing($this->getTable())) }
以下是到目前为止调试的方法:
>在插入之前,在控制器中,$model :: getillableField(),给出适当的可填充数组.
>在model.php行(450)中,
if ($this->isFillable($key)) { $this->setAttribute($key, $value); }
上面的代码返回值为“false”,$model :: getFillableField()在数组列表中有column_name.
>使用表格列硬编码$fillable变量可以删除错误.
请帮忙,我哪里出错了,解决方案是什么?
提前致谢.
解决方法:
你真正想做的是让所有字段都可填写.
在Laravel中执行此操作的正确方法是:
protected $guarded = [];
这适用于5.2,即使它的文档在5.3中找到.
(relevant source code for 5.2)
If you would like to make all attributes mass assignable, you may define the $guarded property as an empty array:
通过将$guarded设置为空数组,您将创建一个空的黑名单,允许所有字段都是可批量分配的.
此外,如果此模型将直接由用户输入构建,请不要这样做. Laravel要求定义$fillable或$guarded是有原因的.除非您的模型具有字面上1:1的公共表单字段,否则允许所有字段在批量分配上可写是一个安全漏洞.
内容总结
以上是互联网集市为您收集整理的php – Laravel Dynamic Fillable in Models全部内容,希望文章能够帮你解决php – Laravel Dynamic Fillable in Models所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。