除了点击之外,Laravel删除所有帖子

时间:2016-07-02 13:28:37

标签: php laravel controller routes dashboard

我尝试通过点击删除按钮删除帖子,但我有问题。如果我点击删除按钮,它会删除该用户的所有帖子,但我点击的帖子除外。 问题是什么?

我的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。有帮助吗?谢谢。

1 个答案:

答案 0 :(得分:0)

这是因为Post::where('id', $post_id)->first();没有找到带有ID的帖子。将其更改为Post::where('id', $post_id)->firstOrFail();,它将抛出异常,您可以捕获(Illuminate \ Database \ Eloquent \ ModelNotFoundException)。