【问题标题】: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 将是您尝试保存的对象,因此您可以根据需要获取或设置它的属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-24
      • 2020-09-05
      相关资源
      最近更新 更多