2016-04-15 16 views
3

削除要求を送信していることをコンソールに表示する削除ボタン付きのフォームがあります。 破棄メソッド付きのLaravel削除エントリ

jquery.js:4 DELETE http://laravel.com/painel/player/53 500 (Internal Server Error) 

と私のルートは次のとおりです。
Route::resource('painel/player','PlayerController'); 


| DELETE | painel/player/{player}  | painel.player.destroy | App\Http\Controllers\[email protected] | 

、私の方法は、破壊

は以下の通りです:

public function destroy($id) 
    { 
      $player = Player::where('id_player', '=', $id)->first(); 
      $player->delete(); 
      $player = array(
        'users'   => Player::all(), 
        'refresh'  => true 
      ); 
      return View::make('painel.player.show', $player); 
    } 

EDIT:

$(document).on('click', '.solsoConfirm', function(){ 
     $("#solsoDeletForm").prop('action', $(this).attr('data-href')); 
    }); 

    $(document).on('click', '.solsoDelete', function(e){ 
     e.preventDefault(); 

     var solsoSelector = $(this); 
     var solsoFormAction = $('#solsoDeletForm').attr('action'); 

     $.ajax({ 
      url: solsoFormAction, 
      type: 'delete', 
      cache: false, 
      dataType: 'html', 
      success:function(data) { 
       $('#solsoDeleteModal').modal('hide'); 
       $('#ajaxTable').html(data); 
       $('#countClients').text($('.solsoTable').attr('data-all')); 
       $.growl.notice({ title: solsoSelector.attr('data-message-title'), message: solsoSelector.attr('data-message-success') }); 
       $('.solsoTable').dataTable(); 
      } 
     }); 

     return false; 
    });  
+0

<form action="painel/player/{{ $id }}" method="POST"> {{ method_field('DELETE') }} {{ csrf_field() }} </form> 

あなたのJSは、次のようになりますコントローラ、それはリソースコントローラか暗黙のコントローラですか?あなたの 'routes.php'コードも含めることができます。 –

+0

それはリソースコントローラです。何か違いはありますか? – ledesma

+1

暗黙的なコントローラーとして使用していた場合、それは可能です。とにかく、あなたのコントローラと 'routes.php'フルコードを質問に投稿できますか? –

答えて

0
:私は、Ajaxを言及するのを忘れてしまった

あなたの$.ajax({ ... type: 'delete' ... })は動作するはずです。set up your response to accept the 'delete' methodが必要です。

代替とPUTを行うための標準的な方法、PATCH、およびLaravelにDELETEが01​​経由で:あなたがのためのルートを定義しているどのように

var csrf = $('input[name="_token"]').val(); 

$.ajax({ 
    url: solsoFormAction, 
    type: 'post', 
    data: {_method: 'delete', _token: csrf}, 
    ... 
}); 
+0

ところで、おそらく500エラーの実際の内容は、どこに問題があるのか​​を伝えるでしょう - ブラウザの開発者ツールでそれを見ることができるはずです。 –

+0

それは動作していません... devツールは、 "500(内部サーバーエラー)"とだけ言う..それは、エラーがajaxメソッド上にある..私がリクエストを送信しなければ、Ajaxリクエスト..それは動作します。 – ledesma

+0

devツールで、[ネットワーク]タブに切り替えて、[POST]をクリックします。あなたは "ヘッダー"と "応答"と他の何かを見てください。レスポンスをクリックすると、Laravelが生成する完全な応答が表示され、問題が説明されます。見つからない場合は、Laravelログファイルを確認してください。 _methodと_tokenの両方を送信するようにAJAXコードを更新しましたか? –

関連する問題