[英]Laravel delete all posts except that i clicked
我尝试通过单击删除按钮删除帖子,但是我有问题。 如果我单击删除按钮,它将删除该用户的所有帖子,但我单击过的帖子除外。 有什么问题?
我的routes.php:
Route::get('deletepost/{post_id}', 'PostController@getDeletePost')->name('delete');
我的PostController:
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。 有什么帮助吗? 谢谢。
这是因为Post::where('id', $post_id)->first();
找不到带有ID的帖子。 将其更改为Post::where('id', $post_id)->firstOrFail();
它将引发一个异常,您可以捕获该异常(Illuminate \\ Database \\ Eloquent \\ ModelNotFoundException)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.