我刚刚将L4(骨架和包)更新到最新版本。
现在,当我尝试创建其中一个模型的新实例并将其保存到数据库时,除了时间戳和主键外,我得到一个空记录。
此行为会在所有模型(用户,出价,项目等)上持续存在,因此这不是本地问题。
我试过了两次
Project::create($project);
$new_project = new Project;
$new_project->fill($project);
$new_project->save();
但结果是一样的:空记录。
答案 0 :(得分:5)
因此,从docs结果来看,由于安全原因,默认情况下会阻止批量分配(例如,从表单中获取所有数据而不指定字段(Input::all()
)并按原样保存它如果客户端通过添加一个名称与DB中的字段对应的字段来操作表单,则DB可能会导致分配不需要的字段。
要指定允许分配的字段,应该将有问题的字段显式添加为 white-list 到模型上受保护的$fillable
数组,或者,使用$guarded
数组
答案 1 :(得分:0)
我遇到了同样的问题,发现解决方案希望帮助别人
$new_project = new Project;
$new_project->unguard();
$new_project->create($project);
$new_project->reguard();
or
Project::unguard();
$new_project = Project::create($project);
$new_project->reguard();