OunknownO OunknownO - 7 days ago 6
PHP Question

Laravel delete() static call

I got this error:


Non-static method Illuminate\Database\Eloquent\Model::delete() should
not be called statically, assuming $this from incompatible context


Here is the code in my controller:

$file_db = new File();
$file_db = $file_db->where('id',$id)->find($id);
$file_db = $file_db->delete();


Can someone explain what I am doing wrong and how to call it correctly?

Answer

You have this:

$file_db = $file_db->where('id',$id)->find($id);

But you should be doing this:

$file = File::where('id', $id)->first(); // File::find($id)

if($file) {

    return $file->delete();
}