سؤال

أنا أتعامل مع الكود التالي:

// 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