2017-05-29 119 views
1

我是Laravel新手。我正在尝试创建一个共同的社交网络。 现在我希望能够删除用户的帖子。在尝试提交表单时,它会加载ajax ,但无法删除数据。在laravel中使用ajax和js删除用户帖子5.4

这里是我的代码:

$("#_global_modal").delegate('#modal_form_delete', 'submit', 
function(event) 
{ 
    // To stop a form default behaviour 
    event.preventDefault(); 

    $.ajax({ 
     url: $(this).attr('action'),    
     type: $(this).attr('method'), 
     dataType: 'json', 
     data: $(this).serialize(), 
    }) 
    .done(function(response){ 
     if(response.delete == "success"){ 
      window.location.href = response.redirect_route 
     }else{ 
      console.log(response); 
     } 
    }) 
    .fail(function(){ 
     console.log("error"); 
    }) 
    .always(function(){ 
     console.log("complete"); 
    }); 

}); 

路线:

Route::post('delete','[email protected]')->name('delete'); 

我的控制器部分:

public function delete(Request $request) 
{ 
    if($request->ajax()){ 
     $user = Auth::user(); 
     $user->post()->delete(['post' => $request->post]); 

     return response()->json([ 
       'delete'   => 'success', 
       'redirect_route' => route('profile') 
      ]); 

    }else{ 
     return response()->json([ 
      'delete'   => 'ERROR', 
      'ERROR_MSG' => 'ERROR MSG' 
     ]); 
     dd("Sorry you have to send your form information by using ajax 
     request"); 
    } 
} 

So how can I solve this problem? 
+0

'$ request-> post'包含什么?帖子ID? – Sandeesh

+0

是的,这是用户的帖子ID。 –

回答

1

你删除说法是错误的。

public function delete(Request $request) 
{ 
    if($request->ajax()) { 
     Post::where('id', $request->post) 
      ->where('user_id', auth()->id()) 
      ->delete(); 

     return response()->json([ 
      'delete' => 'success', 
      'redirect_route' => route('profile') 
     ]); 
    } 

    return response()->json([ 
     'delete' => 'ERROR', 
     'ERROR_MSG' => 'ERROR MSG' 
    ]); 
} 
+0

无法删除数据,它将发送到控制器的else段。 –