php – Laravel Dynamic Fillable in Models
在laravel 5.2中遇到了问题.
以下是eloquent创建操作(后调用)期间的错误, Model.php 453中的批量分配异常:column_name 以下是要考虑的先决条件: >模型中的Fillables通过以下代码以动态方式填充: public function __construct() { $this->fillable(Schema::getColumnListing($this->getTable())) } 以下是到目前为止调试的方法: >在插入之前,在控制器中,$model :: getillableField(),给出适当的可填充数组. if ($this->isFillable($key)) { $this->setAttribute($key,$value); } 上面的代码返回值为“false”,$model :: getFillableField()在数组列表中有column_name. 提前致谢. 解决方法
你真正想做的是让所有字段都可填写.
在Laravel中执行此操作的正确方法是: protected $guarded = []; 这适用于5.2,即使它的文档在5.3中找到. (relevant source code for 5.2) (Documentation from 5.3):
通过将$guarded设置为空数组,您将创建一个空的黑名单,允许所有字段都是可批量分配的. 此外,如果此模型将直接由用户输入构建,请不要这样做. Laravel要求定义$fillable或$guarded是有原因的.除非您的模型具有字面上1:1的公共表单字段,否则允许所有字段在批量分配上可写是一个安全漏洞. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |