【问题标题】:Manipulate Input data before save in Laravel using Eloquent events使用 Eloquent 事件在 Laravel 中保存之前操作输入数据
【发布时间】:2014-02-06 15:09:42
【问题描述】:
有什么办法可以做到吗?
MyModel::saving(function($content) {
if(!Input::has('confirmed')) {
Input::merge(['confirmed' => '0']);
}
});
目前输入实际上并没有改变。我正在尝试系统地将未选中的复选框(名为“确认”)添加到输入中,以便它们正确保存。
【问题讨论】:
标签:
forms
laravel
request
eloquent
【解决方案1】:
您可以使用您正在处理的模型中的引导函数来挂钩模型的事件
public static function boot()
{
parent::boot();
// Setup event bindings...
MyModel::saving(function($content)
{
if(!Input::has('confirmed')) {
Input::merge(['confirmed' => '0']);
}
// $content->confirmed = '0';
});
}
回调函数中的$content 将是您尝试保存的对象,因此您可以根据需要获取或设置它的属性。