Laravel delete() 时出现 BadMethodCallException

Laravel BadMethodCallException on delete()

无法对 find() 执行删除,

BadMethodCallException Call to undefined method App\Models\Task::ondeletemodel().

但是当使用它的地方。

    public function delete($id)
    {
            Task::find($id)->delete(); //error
            // Task::where('id', $id)->delete(); //not error 
            session()->flash('message', 'Task Deleted Successfully.');
    }

已编辑:这是我的 uuid 特征:

namespace App\Http\Traits;

use Facades\Str;

trait UseUuid
{
    protected static function boot()
    {
        parent::boot();

        static::creating(function ($model) {
            $model->uuid = unique_str($model);
        });

        static::deleting(function ($model) 
        {
            $model->ondeletemodel($model);
        });
    }
}

如错误消息中所示:

use App\Http\Traits\UseUuid 中,您可能已经定义了一个要在 ondeletemodel 上触发的侦听器,但是在特征或任务模型中没有这样命名的方法

$tasks = Task::find($id);
$task->users->detach();
$tasks->delete();
session()->flash('message', 'Task Deleted Successfully.');