我正在尝试更新工单(SET Deleted = TRUE
因为我还必须显示已删除的工单)。为此,我POST
在表单上使用带有票证ID的方法,但是在表单提交时,该票证ID更改为最新的票证ID。
当我检查时,我在操作中看到了确切的票证ID,但是在提交时,它得到了更改。
我也尝试传递给它一个隐藏的输入,但不幸的是,它也获得了最新票证的更改。
刀
<tbody>
@foreach ($Tickets as $Ticket)
<tr>
<td>{{$loop->iteration}}</td>
<td>{{$Ticket->Customer->Name}}</td>
<td>$ {{$Ticket->Paid}}</td>
<td>$ {{$Ticket->TDisc}}</td>
<td>{{$Ticket->Tax}}</td>
<td>{{ date("d M Y", strtotime($Ticket->Date))}}</td>
<td class="text-right">
<a href="/Ticket/{{$Ticket->ID}}">EDIT</a>
<a href="" onclick="event.preventDefault(); document.getElementById('Delete').submit();">DELETE</a>
<form id="Delete" action="Ticket/{{$Ticket->ID}}" method="POST" style="display: one;">
<input type="hidden" name="ID" value="{{{{$Ticket->ID}}}}"
@csrf
</form>
</td>
</tr>
@endforeach
</tbody>
控制者
public function destroy(Request $request, $id) {
dd($id);
Ticket::where('ID', $id)->update(['Deleted' => TRUE]);
return redirect()->back()->with('success', 'Ticket has been Deleted');
}
请帮助我找出我所缺少的。
任何帮助将非常有价值。
它不起作用的原因是您的代码将始终以第一个实例为目标,因为id
每种形式的完全相同。
您不应id
多次为任何元素设置相同的值。
更好的方法如下所示,它将提交正确的表单(包含<a>
标记的表单)。您还缺少方法字段来告诉laravel这是一个删除请求。
<form action="Ticket/{{$Ticket->ID}}" method="POST">
<input type="hidden" name="ID" value="{{$Ticket->ID}}">
{{ csrf_field() }}
{{ method_field('DELETE') }}
<a href="" onclick="event.preventDefault(); this.parentNode.submit();">
DELETE
</a>
</form>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句