Php Laravel 4-雄辩的质量分配在更新后创建空记录

Php Laravel 4-雄辩的质量分配在更新后创建空记录,php,laravel,laravel-4,mass-assignment,eloquent,Php,Laravel,Laravel 4,Mass Assignment,Eloquent,我刚刚将L4(包括框架和包)更新为最新版本 现在,当我尝试创建其中一个模型的新实例并将其保存到DB时,除了时间戳和主键之外,我得到了一条空记录 这种行为在所有模型(用户、投标、项目等)中都存在,因此这不是本地问题 我两个都试过了 Project::create($project); 而且,: 但是结果是一样的:一条空记录。因此,由于安全原因(例如,从表单中获取所有数据而不指定字段(Input::all()),现在默认情况下阻止了批量分配如果客户机通过添加一个名称与数据库中的字段相对应的字段来操

我刚刚将L4(包括框架和包)更新为最新版本

现在,当我尝试创建其中一个模型的新实例并将其保存到DB时,除了时间戳和主键之外,我得到了一条空记录

这种行为在所有模型(用户、投标、项目等)中都存在,因此这不是本地问题

我两个都试过了

Project::create($project);
而且,:


但是结果是一样的:一条空记录。

因此,由于安全原因(例如,从表单中获取所有数据而不指定字段(
Input::all()
),现在默认情况下阻止了批量分配如果客户机通过添加一个名称与数据库中的字段相对应的字段来操作表单,则将其保存为原样可能会导致分配不需要的字段


要指定允许分配的字段,应明确将相关字段作为白名单添加到模型上受保护的
$filleble
数组中,或者使用
$guarded
数组创建黑名单,事实证明,由于安全原因(例如,从表单中提取所有数据而不指定字段(
Input::all()
),批量分配现在默认被阻止如果客户机通过添加一个名称与数据库中的字段相对应的字段来操作表单,则将其保存为原样可能会导致分配不需要的字段


要指定允许分配的字段,应明确将相关字段作为白名单添加到模型上受保护的
$filleble
数组中,或者,使用
$guarded
数组创建黑名单我遇到了同样的问题并找到了解决方案,希望能帮助其他人

$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();

我也面临着同样的问题,找到了解决办法,希望能帮助别人

$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();

要实现此功能,请放置受保护的$fillable=array();要实现此功能,请放入受保护的$fillable=array();在您的模型中。使用“保护/可填充”属性,您已经完全删除了此处质量分配的安全性!是的,我现在正在遵循保护/可填充属性,因为你可以看到它是一个旧帖子。使用保护/可填充属性,你已经完全移除了这里的大规模分配的安全性!是的,我现在遵循保护/可填充属性,因为你可以看到它是一个老帖子。