Laravel更新表单仅显示一个ID

时间:2019-07-28 13:55:00

标签: php html laravel

我有一个页面,显示来自数据库的记录和两个按钮,其中添加了新记录并使用Laravel 5.8中的引导程序模式进行编辑。当我向数据库添加新记录时,一切正常。问题是,在编辑记录时,它仅更改第一个记录,因为它不传输剩余的ID,而始终仅显示第一个ID。当我显示每个按钮编辑的记录时,我会显示记录的ID,并且所有内容都可以正确显示,但是按下按钮后,编辑不会提供ID。在表单中,我使用以下代码。来源:[链接] https://github.com/page4me/transport


@foreach($cars as $car)
               @if(($car->status)==1)

                 <tr>
                   <td class="text-center">{{$i++}}</td>
                   <td>{{$car->rodzaj_poj}}<br /><strong> {{$car->marka}} </strong></td>
                   <td class="text-center">{{$car->nr_rej}}</td>
                   <td class="text-center">{{$car->nr_vin}}</td>
                   <td class="text-center">{{$car->dmc}} kg</td>
                   <td class="text-center">{{$car->wlasnosc}}</td>
                   <td class="text-center">wprowadzono <br />{{$car->data_wpr}} r.</td>
                   <td class="text-center" colspan="2">
                   {{$cid =$car->id}}
                    <button data-toggle="modal" data-idcar="{{$car->id}}" data-nr_rej="{{$car->nr_rej}}"  data-marka="{{$car->marka}}" data-nr_vin="{{$car->nr_vin}}" data-wlasnosc="{{$car->wlasnosc}}" data-data_wpr="{{$car->data_wpr}}" data-dmc="{{$car->dmc}}" data-rodzaj_poj="{{$car->rodzaj_poj}}" data-target="#editModal" role="button" class="btn btn-success btn-sm" alt="Edycja" ><i class="fa fa-edit"></i></button>

                    <a href="#" role="button" class="btn btn-danger btn-sm">Wycofaj</a>

                                      <!-- edit modal -->
                                <!-- Modal -->
                                  <div class="modal fade" id="editModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true">
                                    <div class="modal-dialog modal-dialog-centered modal-lg" role="document">
                                      <div class="modal-content text-left">
                                        <div class="modal-header  bg-success">
                                          <div class="card-header bg-success text-light" >
                                             Edycja pojazdu przedsiębiorcy o  -
                                               <span style="color:#000;font-size:15px;"> Nr licencji / zezwolenia:
                                                 @foreach($dok as $dk)
                                                   {{ $dk->nr_dok }}

                                               </span><span style="color: #fff;font-size:15px;">wydano dn. {{ $dk->data_wyd}}   r.</span>

                                                 @endforeach
                                            </div>
                                          <button type="button" class="close text-light" data-dismiss="modal" aria-label="Close">
                                            <span aria-hidden="true">&times;</span>
                                          </button>
                                        </div>
                                        <div class="modal-body">
                                           ID:  {{$cid =$car->id}}
                                            <!-- Form edit car -->
                                                <form method="post" action="{{ route('pojazdy.update', $cid ) }}">
                                              <div class="row">
                                                    @csrf
                                                      @method('PATCH')
                                                 <div class="col-md-12 form-group">
                                                    <label for="nr_rej"><strong>Numer rejestracyjny:</strong></label>
                                                    <input type="text" class="form-control" name="nr_rej" id="nr_rej" value="{{$car->nr_rej}}"/>
                                                </div>
                                               </div>

即使它在foreach循环中显示,它始终仅显示第一个ID。正确编辑按钮旁边会显示ID,并且在action = "{{route ('vehicle.update', $ car-> id)}}"中使用时已经存在问题

1 个答案:

答案 0 :(得分:0)

您遇到的问题是,您正在$cars上循环并将dom中的多个元素设置为同一id。在该foreach循环中,您有几个项目将被多次覆盖。

例如:

//This SAME id will appear every time you have a new car loop
<div class="modal fade" id="editModal"/>

//This nr_rej will ONLY be the LAST nr-rej in the loop.  It will overwrite every one before it.
<input type="text" class="form-control" name="nr_rej" id="nr_rej" value="{{$car->nr_rej}}"/> 

您可以通过多种方式解决此问题。您可以将数组添加到值,也可以将实际的汽车id添加到dom元素ID(id=nr_rej-{{$car->id}}),等等。但是通常,如果通过ajax调用加载模态,这是最简单的-这样,您不必在屏幕上为每个循环粘贴模态代码-只需一个循环。

希望这会有所帮助