Laravel 4.2如何判断模型是软删除还是强制删除

Laravel 4.2 how to determine if model is soft delete or force delete

这是我在发票模型中的代码:

class Invoice extends Eloquent {

    protected $table = "invoice";
    protected $guarded = ["id"];
    protected $deleted_at = ['deleted_at'];

    use SoftDeletingTrait;

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

        Invoice::deleted(function($invoice) {
            if($invoice->isSoftDelete()) {
                //do in case of soft delete
            } else if($invoice->isForceDelete()) {
               //do in case of force delete
            }
        });
    }
}

例如:

$invoice = Invoice::find(1);

当$invoice被删除时(可能是软删除或强制删除)

$invoice->delete();
$invoice->forceDelete();

如何在函数boot()中判断上面的$invoice是软删除还是强制删除?

该模型有 属性 forceDeleting。这将是 truefalse:

if($invoice->forceDeleting){
    //do in case of force delete
}
else {
    //do in case of soft delete
}

注意这个属性只有在使用SoftDeletingTrait时才可用。所以在某种基础模型中使用它要小心。