如果在更新失败并且错误被触发时,如何将$ id从控制器传回到同一视图。
我有一个视图,它打印数据库中的所有项目,并为每个触发模态弹出窗口的项目添加编辑按钮。
@for ($i =0; $i < count($inventory); $i++)
<tr>
<td> {{ $inventory[$i]->name }} </td>
<td>
<button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal{{ $inventory[$i]->id }}">
Edit
</button>
编辑完所有数据后,将通过表格
传递给路线<form action="/updateInventory/{{$inventory[$i]->id}}" method="post">
然后它进入我的控制器,它验证输入,然后将输入插入数据库。
public function update(Request $req,$id)
{
$this->validate($req, [
'name'=> 'min:2'
]);
$inventory = inventory::find($id);
$inventory->name = $req->input('name');
$response = $inventory->save();
if($response)
{
return redirect()->back()->with(['message'=>'gerai']);
}
return redirect()->back()->withErrors(['error'=>'negerai']);
//return redirect('/inventory');
}
但是如果输入没有通过验证,我就会打印错误。
@include ('partials.notice')
@if($errors->any())
<script>
$(function() {
$('#myModal{{$id}}').modal('show');
});
</script>
@endif
如何将我刚从控制器编辑的元素的$ id传递回同一个视图,这样当@if($ errors-&gt; any())触发时我可以弹出我的模态$('#myModal {{$ id }} ')的模态(' 显示“);我希望编辑元素。
答案 0 :(得分:0)
在Laravel中,您可以将数据闪存到会话中。在您的示例中,您可以执行类似的操作:
$request->session()->flash('idOfError', $id);
您可以通过以下方式访问它:
@if($errors->any())
<script>
$(function() {
$('#myModal{{session()->get("idOfError")}}').modal('show');
});
</script>
@endif
您可以看到更多here。