代码之家  ›  专栏  ›  技术社区  ›  Erni

laravel更新表单只显示一个id

  •  0
  • Erni  · 技术社区  · 5 年前

    我有一个显示数据库记录的页面和两个按钮,其中添加了一个新记录,并在 Laravel 5.8 .当我向数据库中添加新记录时,一切正常。问题是,当编辑一条记录时,它只会更改第一条记录,因为它不会传输剩余的id,它总是只显示第一个id。当我用每个edit按钮显示记录时,我显示了记录的id,所有的内容都显示正确,但是按下按钮edit并没有提供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>
    

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

    1 回复  |  直到 5 年前
        1
  •  0
  •   Watercayman    5 年前

    你现在的问题是 $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}}"/> 
    

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

    希望这有帮助