【发布时间】:2021-08-20 08:18:39
【问题描述】:
我一直在尝试向我的按钮添加一个路由,据此我已将方法声明为 POST,但是当我单击该按钮时,会出现错误提示,说明它正在使用 GET 方法。
这是我的看法
<form method="post" action="{{route('admin.order.item.edit.action', [$order])}}">
..
..
<table class="table m-l-sm">
<tbody>
@foreach($order->packages as $item)
<tr>
<td>
<p class="m-b-xxs font-bold">{{$item->name}}</p>
@foreach($item->products as $product)
<p class="m-b-xxs">{{$product->name}} X {{$product->pivot->quantity}}</p>
@endforeach
<div class="form-group row m-t-sm">
<div class="col-md-4">
<div class="input-group d-inline">
<span class="input-group-addon font-bold">RM {{$item->unit_price}}</span>
<span class="input-group-addon">X</span>
<input id="" type="number" class="form-control" name="package[{{$item->id}}][qty]" value="{{!empty($order->packages->where('id', $item->id)->first()) ? $order->packages->where('id', $item->id)->first()->getOriginal('pivot_quantity') : 0}}" min="0" placeholder="Qty" @cannot('edit-order-package', $order) disabled @endcannot>
</div>
</div>@error('package.'.$item->id)
<div class="col-md-12 alert alert-danger">{{ $message }}</div>
@enderror
<div class="col-md-8 d-flex justify-content-end">
<a class="btn btn-sm btn-danger btn-danger" href="{{route('admin.order.item.edit.delete', [$item->id])}}" >Delete</a> <--- where i am calling my route
</div>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</form>
这是我的路线
Route::post('/{order}/edit/delete', 'App\OrderController@handleDeleteItemOrder')->name('admin.order.item.edit.delete');
控制器
public function handleDeleteItemOrder(Order $order){
log:info($order);
}
【问题讨论】:
-
A
<button />既不会神奇地知道选择哪种方法,也不会使用除GET之外的任何方法。你需要 JavaScript 来实现。 -
你的表单动作路由名称
admin.order.item.edit.action和你的路由名称admin.order.item.edit.delete不同 -
你的表单动作和路由动作不匹配