Laravel удалить все сообщения, кроме того, что я нажал

Я пытаюсь удалить сообщение, нажав на кнопку удаления, но у меня есть проблема. Если я нажимаю кнопку «Удалить», он удаляет все сообщения этого пользователя, кроме той, на которую я нажал.
В чем проблема?

Мои маршруты.php:

Route::get('deletepost/{post_id}', 'PostController@getDeletePost')->name('delete');

Мой ПостКонтроллер:

public function getDeletePost($post_id){
$post = Post::where('id', $post_id)->first();
if(Auth::user() != $post->user){
return redirect()->back();
}
$post->delete();
return redirect()->route('dashboard')->with(['message' => 'Successfully deleted!']);
}

Модель «Мой пост»:

public function user(){
return $this->belongsTo('App\User');
}

Моя модель пользователя:

namespace App;

use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;

class User extends Model implements Authenticatable
{
use \Illuminate\Auth\Authenticatable;

public function posts(){
return $this->hasMany('App\Post');
}
}

И приборная панель:

@if(Auth::user() == $post->user)
<a href="#">Edit</a>
<a href=" {{ route('delete', ['post_id' => $post->id]) }}">Delete</a>
@endif

Я использую Laravel v5.2.39. Любая помощь? Спасибо.

0

Решение

Это потому что Post::where('id', $post_id)->first(); не находит сообщение с идентификатором. Измените это на Post::where('id', $post_id)->firstOrFail(); и он выдаст исключение, которое вы можете поймать (Illuminate \ Database \ Eloquent \ ModelNotFoundException).

0

Другие решения

Других решений пока нет …