我找不到问题,我想更新数据到数据库,但我得到补丁方法是不支持的。我找不到问题,我从书本上查了一下也没什么不同,但在这种情况下不能运行更新。
这是我的web.php
Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home');
Route::get('laravel/data', 'LaravelController@listData')->name('laravel.data');
Route::resource('laravel', 'LaravelController');这是我的控制器
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$laravel = Laravel::find($id);
$laravel = $request['id'];
$laravel->tanggal_pemasangan = $request['tanggal'];
$laravel->pitstop = $request['pitstop'];
$laravel->merk_ban = $request['merk_ban'];
$laravel->no_series_ban = $request['series_ban'];
$laravel->jenis_mobil = $request['jenis_mobil'];
$laravel->plat_nomor = $request['plat_mobil'];
$laravel->posisi_ban = $request['posisi_ban'];
$laravel->status = $request['status'];
$laravel->update();
}我的form.blade
<form class="form-horizontal" data-toggle="validator" method="POST">
@method('POST')
@csrf和我的ajax
$('#modal-form form').validator().on('submit', function(e){
if(!e.isDefaultPrevented()){
var id = $('#id').val();
if(save_method == "add") url = "{{ route('laravel.store') }}"
else url = "laravel/"+id;
$.ajax({
url : url,
type: "POST",
data: $('#modal-form form').serializa(),
success : function(data){
$('#modal-form form').modal('hide');
table.ajax.reload();
},
error: function(){
alert("Tidak dapat menyimpan data!");
}
});
return false;
}
});
function editForm(id){
save_method = "edit";
$('input[name = _method]').val('PATCH');
$('#modal-form form')[0].reset();
$.ajax({
url : "laravel/"+id+"/edit",
type: "GET",
dataType: "JSON",
success: function(data){
$('#modal-form').modal('show');
$('.modal-title').text('Edit Data');
$('#id').val(data.id);
$('#tanggal').val(data.tanggal_pemasangan);
$('#pitstop').val(data.pitstop);
$('#merk_ban').val(data.merk_ban);
$('#series_ban').val(data.no_series_ban);
$('#jenis_mobil').val(data.jenis_mobil);
$('#plat_mobil').val(data.plat_nomor);
$('#posisi_ban').val(data.posisi_ban);
$('#status').val(data.status);
},
error: function(){
alert("Tidak dapat menampilkan data!");
}
});
}每次我想做更新,总是给我错误405这个方法是不受支持的
发布于 2021-07-11 04:48:32
验证您的服务器是否支持HTTP请求:"PUT“。
在blade.php文件中,在表单中添加@method('put')。
<form method="POST">
@method('PUT')
@csrf
...
</form>考虑到资源类型控制器为您生成路由,也许您应该使用php artisan route:list命令来检查更新的路由参数。
为资源类型控制器here生成的路由的一些示例。
现在,这可能是一个路由层次结构问题,尝试像这样更改路由的顺序。
Route::resource('laravel', 'LaravelController');
Route::get('laravel/data', 'LaravelController@listData')->name('laravel.data');发布于 2021-07-10 22:14:12
Route::resource() #update method uses PATCH|PUT verb instead of POST在您的示例中,您使用POST方法,因此请求将不兼容,如果需要,您需要在ajax或表单中的类型中使用PATCH或PUT而不是POST
https://stackoverflow.com/questions/68328399
复制相似问题