我尝试通过点击删除按钮删除帖子,但我有问题。如果我点击删除按钮,它会删除该用户的所有帖子,但我点击的帖子除外。 问题是什么?
我的routes.php:
varbinary
我的PostController:
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');
}
}
我使用的是Laravel v5.2.39。有帮助吗?谢谢。
答案 0 :(得分:0)
这是因为Post::where('id', $post_id)->first();
没有找到带有ID的帖子。将其更改为Post::where('id', $post_id)->firstOrFail();
,它将抛出异常,您可以捕获(Illuminate \ Database \ Eloquent \ ModelNotFoundException)。