保存后、保存前等的 laravel 模型回调

2022-08-30 14:03:48

Laravel中是否有这样的回调:

afterSave()
beforeSave()
etc

我搜索了一下,但什么也没找到。如果没有这样的东西 - 实现它的最佳方法是什么?

谢谢!


答案 1

实现保存回调之前和之后扩展 save() 函数的最佳方式。

下面是一个简单示例

class Page extends Eloquent {

   public function save(array $options = [])
   {
      // before save code 
      parent::save($options);
      // after save code
   }
}

所以现在当你保存一个Page对象时,它的save()函数被调用,其中包括父级::save()函数;

$page = new Page;
$page->title = 'My Title';
$page->save();

答案 2

为Laravel 4添加一个示例:

class Page extends Eloquent {

    public static function boot()
    {
        parent::boot();

        static::creating(function($page)
        {
            // do stuff
        });

        static::updating(function($page)
        {
            // do stuff
        });
    }

}

推荐