首页 > 解决方案 > 获取表 laravel 中选定行的 id

问题描述

所以我正在尝试使用 laravel 集体进行 CRUD,我的问题是如何获取选定行的 id 以便对其进行编辑。

看起来如果我选择要在表中编辑的某个列,它获得的 id 是最后一行的 id 而不是所选行。

这是我的看法。

<table class="table">
                <thead>
                  <tr>
                    <th scope="col">id</th>
                    <th scope="col">First</th>
                    <th scope="col">Last</th>
                    <th scope="col">Course</th>
                    <th scope="col"></th>
                    <th scope="col"></th>
                  </tr>
                </thead>
                <tbody>
                    @foreach ($cruds as $crud)
                        <tr>
                            <th scope="row">{{$crud->id}}</th>
                            <td>{{$crud->firstName}}</td>
                            <td>{{$crud->lastName}}</td>
                            <td>{{$crud->course}}</td>
               
                            <td><button class= "btn btn-warning" data-toggle="modal" data-target="#editModal"> Edit </button></td>
                            <td><button class= "btn btn-danger" data-toggle="modal" data-target="#deleteModal"> Delete </button></td>
                        </tr>
                    @endforeach
                </tbody>
              </table>

这是我的模态

{{-- <-- Edit Modal --> --}}
  <div class="modal fade" id="editModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
    <div class="modal-dialog">
      <div class="modal-content">
        <div class="modal-header">
          <h5 class="modal-title" id="exampleModalLabel">EDIT DATA</h5>
          <button type="button" class="close" data-dismiss="modal" aria-label="Close">
            <span aria-hidden="true">&times;</span>
          </button>
        </div>
        
        <div class="modal-body"> 
            
            {!! Form::open(['action' => ['CrudController@update', $crud->id], 'method' => 'POST'])!!}
            <div class="form-group">
                {{Form::label('firstName','First Name')}}
                {{Form::text('firstName',$crud->firstName,['class' => 'form-control'])}}
            </div>

            <div class="form-group">
                {{Form::label('lastName','Last Name')}}
                {{Form::text('lastName',$crud->lastName,['class' => 'form-control'])}}
            </div>

            <div class="form-group">
                {{Form::label('course','Course')}}
                {{Form::text('course',$crud->course,['class' => 'form-control'])}}
            </div>
            <div class="modal-footer">
            {{Form::hidden('_method', 'PUT')}}
            {{Form::submit('Update', ['class' => 'btn btn-primary'])}}
            </div>
        {!! Form::close() !!}
        </div>
      </div>
    </div>
  </div>

这是我的控制器

public function update(Request $request, $id)
    {
        //
        $this->validate($request, [
            'firstName' =>'required',
            'lastName' => 'required',
            'course' => 'required'
        ]); 

        //Adding Data
        $crud = Crud::find($id); 
        $crud->firstName = $request->input('firstName');
        $crud->lastName = $request->input('lastName');
        $crud->course = $request->input('course');
        $crud->save();

        return redirect('/crud');
    }

标签: laravelformscontrollerprimary-keylaravelcollective

解决方案


试试这个

     <script>
       $(document).on('click', '.edit-modal', function() {
        $('#id').val($(this).data('id'));
        $('#firstName').val($(this).data('firstName'));
        $('#lastName').val($(this).data('lastName'));
        $('#course').val($(this).data('course'));
        $('#ModalEditForm').modal('show');
     });
    </script>

并给每个输入一个ID,并将记录的ID作为隐藏输入发送从路由和控制器方法中删除ID并将ID作为隐藏输入发送


推荐阅读