Php Laravel使用销毁方法删除条目
我有一个带有删除按钮的表单,我在控制台上看到它正在发送一个删除请求Php Laravel使用销毁方法删除条目,php,laravel-5.2,Php,Laravel 5.2,我有一个带有删除按钮的表单,我在控制台上看到它正在发送一个删除请求 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 | Ap
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\PlayerController@destroy |
我的方法如下:
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);
}
编辑:
我忘了提到ajax:
$( 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;
});
虽然您的$.ajax({…键入:'delete'…})
应该可以工作,但您需要这样做
在Laravel中执行PUT、PATCH和DELETE的替代标准方法是:
您如何定义控制器的路由,它是资源控制器还是隐式控制器?你能把你的
routes.php
代码也包括进去吗?它是一个资源控制器。。这有什么区别吗?如果你把它作为一个隐式控制器,它会。不管怎样,你能把你的控制器和routes.php
完整的代码发布到这个问题上吗?对不起,这是一个AJAX请求。我刚刚编辑了这个问题……我知道这是一个AJAX请求,但您必须已经为您正在执行的删除请求定义了路由(很可能在文件routes.php
)中,那么你能发布它的内容以及销毁方法的完整控制器代码吗?顺便说一句,500错误的实际内容可能会告诉你问题出在哪里-你应该能够在浏览器的开发工具中看到它。它不起作用。。。开发工具只显示“500(内部服务器错误)”。。它说错误在ajax方法上。。如果我发送的请求不是ajax请求。。在dev工具中,切换到network选项卡,然后单击POST。您应该看到“标题”、“响应”和其他一些内容。单击响应-您应该看到Laravel生成的完整响应,它将描述问题。如果找不到,请查看Laravel日志文件。您是否已更新AJAX代码以同时发送_方法和_令牌?
<form action="painel/player/{{ $id }}" method="POST">
{{ method_field('DELETE') }}
{{ csrf_field() }}
</form>
var csrf = $('input[name="_token"]').val();
$.ajax({
url: solsoFormAction,
type: 'post',
data: {_method: 'delete', _token: csrf},
...
});