簡體   English   中英

Laravel-從登錄用戶中刪除特定帖子

[英]Laravel - delete specific post from logged in user

我正在嘗試對已登錄用戶的帖子進行刪除按鈕。已登錄用戶可以查看其他人的帖子,並且只能刪除自己的帖子。 我已經設法將刪除按鈕僅出現在自己的帖子中。 我認為問題出在視圖中的路線上。

控制器:

public function destroy($id)
{
    $post = Post::find($id);
    $post->delete;

    return view('/home', [
        'posts' => $post
    ]);
}

視圖:

   @if ($post->checkUser(Auth::user()))
        <form action="{{ route('posts.destroy, $post') }}" method="POST">
              <input type="hidden" name="_method" value="DELETE">
                      {{ csrf_field() }}
                      {{ method_field('DELETE') }}

                        <button>Delete</button>
         </form>
  @endif

路線:

Route::resource('posts', 'PostController');

更改$post->delete; $post->delete() ; 因為delete()方法是一個函數。 如果您使用資源,則應發送帶有delete方法的請求作為呼叫銷毀方法。 但是您不能從表單中執行此操作,因為僅支持發布和獲取,另一種解決方案可以使用隱藏輸入並通過發布方法發送, <input name="_method" type="hidden" value="DELETE">

您需要同時指定post_id和user_id。

public function destroy($id)
{
    $user_id = Auth::user();
    $post = Post::where('post_id', $id)->where('user_id',$user_id)-get();
    $post->delete();

    // do your rest of code
}

根據您的表字段名稱更改post_id和user_id名稱。

我認為您應該在視圖中修改路線,使其看起來像這樣,

route('posts.destroy, ['id' => $post->id]') ,如果這樣不起作用,請通過php artisan route:list再次檢查您的命名路由,並嘗試發布完整的錯誤信息更好的理解。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM