我正在处理以下代码:

// BaseModel
abstract class BaseModel extends Eloquent {
    public static function boot()
    {
        parent::boot();

        static::saving(function($model)
        {
            echo 'Fired BaseModel';
        });
    }
}

// Project (extends BaseModel)
class Project extends BaseModel {
    public static function boot()
    {
        parent::boot();

        static::saving(function($model)
        {
            echo 'Fired Project';
        });
    }
}

将新的/现有的数据保存到项目模型时,这只会给我 Fired BaseModel. 。它根本不会触发项目模型上的保存事件。有没有办法克服这个限制?

有帮助吗?

解决方案

在调用父事件之前先触发子事件应该可以解决这个问题

// Project (extends BaseModel)
class Project extends BaseModel {
    public static function boot()
    {   
        static::saving(function($model)
        {
            echo 'Fired Project';
        });

        parent::boot();
    }
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top