Laravel Eloquent模型覆盖静态boot方法

3
我想覆盖模型事件,并找到了这个示例代码,但不确定我完全理解它。

源代码:

http://driesvints.com/blog/using-laravel-4-model-events/

其中有一个静态方法和另一个静态方法...这是如何工作的?还是在boot方法中设置了静态属性?

<?php

class Menu extends Eloquent {
    protected $fillable = array('name', 'time_active_start', 'time_active_end', 'active');

    public $timestamps = false;

    public static $rules = array(
        'name' => 'required',
        'time_active_start' => 'required',
        'time_active_end' => 'required'
    );

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

       static::saving(function($post)
       {

       });       
   }    

}
1个回答

8

static::saving() 只是在自身上调用静态方法 saving(如果当前类中不存在,则在父类中调用)。因此,它本质上与以下内容相同:

Menu::saving(function($post){

});

所以它在启动函数中为“saving”事件注册回调。 Laravel模型事件文档

由于我正在从启动方法调用保存方法,Laravel 如何知道何时回调给我? - Chris Muench
你是什么意思?那与引导方法无关。这只是(model)事件的工作方式。在实际保存模型之前,Laravel将检查已注册的绑定并调用它们。 - lukasgeiter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接