Laravel Eloquent模型覆盖静态启动方法

时间:2015-01-08 18:33:58

标签: php laravel

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

来源:

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

有一个静态方法,其中包含另一个静态方法......这是如何工作的?或者它是否以某种方式在引导方法中设置静态属性?

<?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 个答案:

答案 0 :(得分:5)

static::saving()只调用自身的静态方法saving(如果在当前类中不存在则为父类)。所以它基本上是这样做的:

Menu::saving(function($post){

});

因此它正在为启动函数中的saving事件注册回调。

Laravel documentation on model events