Laravel - Method delete does not exist

laravel, php

Solution

This is your code.

$user_id = Auth::user();
$post= Post::where('id', $id)->where('user_id',$user_id)->get();
$post->delete();

just add `->each()` before delete like this,

$post->each->delete();

It work's for me.

Problem

I'm getting the error: BadMethodCallException in Macroable.php line 74: Method delete does not exist. route: ``` Route::resource('posts', 'PostController'); ``` my controller: ``` public function destroy($id) { $user_id = Auth::user(); $post= Post::where('id', $id)->where('user_id',$user_id)->get(); $post->delete(); return view('/home', [ 'posts' => $post ]); } ``` view: ``` <form action="{{ route('posts.destroy', '$post->id') }}" method="post"> <input type="hidden" name="_method" value="DELETE" /> {{ csrf_field() }} {{ method_field('DELETE') }} <input type="submit" class="btn btn-danger" value="delete" /> </form> ``` I tried changing `method="post"` to `delete`: error is gone but nothing gets deleted..

Original source

Related problems