这是我使用PUT方法的表单,但它给了我一个错误
此路由不支持GET方法。支持的方法:PUT。
<form action="{{ route('accounts.update', $user->id) }}" method="put" role="form" name="_method">
@csrf
@method('PUT')
<div class="form-group row">
<label for="balance" class="col-md-4 col-form-label text-md-right">{{ __('Enter Client\'s Balance :') }}</label>
<div class="col-md-6">
<input id="balance" type="text" class="form-control @error('balance') is-invalid @enderror" name="balance" value="" autocomplete="balance" autofocus>
</div>
</div>
<div class="form-group row">
<label for="amount" class="col-md-4 col-form-label text-md-right">{{ __('Enter Client\'s Amount:') }}</label>
<div class="col-md-6">
<input id="amount" type="text" class="form-control @error('amt') is-invalid @enderror" name="amt" value="" required autocomplete="amt" autofocus>
</div>
</div>
<!-- /.card-body -->
<div class="card-footer text-center">
<button type="submit" class="btn btn-primary">Update Account</button>
</div>
</form>
这是路由文件
Route::get('/accounts/{id}/edit', 'AccountsController@edit')->name('accounts.edit');
Route::put('/accounts/{id}', 'AccountsController@update')->name('accounts.update');
答案 0 :(得分:3)
T
答案 1 :(得分:0)
我认为您应该从 form 标记中删除 name =“ _ method” 属性,因为laravel为隐藏的输入保留了该属性
示例:
{
test: /\.css$/,
oneOf: [
// this matches `<style module>`
{
resourceQuery: /module/,
use: [
'vue-style-loader',
{
loader: 'css-loader',
options: {
modules: true,
localIdentName: '[local]_[hash:base64:5]'
}
}
]
},
// this matches plain `<style>` or `<style scoped>`
{
use: [
'vue-style-loader',
'css-loader'
]
}
]
}
请参阅:https://laravel.com/docs/5.7/routing#form-method-spoofing
答案 2 :(得分:0)
HTML表单不支持PUT / PATCH方法。因此,当您想在Laravel中使用HTML表单执行PUT / PATCH操作时,必须添加@method('put')
并将表单方法设置为method="post"
。因此,您可以将代码更改为:
<form action="{{ route('accounts.update', $user->id) }}" method="post">
@csrf
@method('PUT')
....
</form>