如何使用laravel获取行id

时间:2017-08-03 19:57:21

标签: php laravel laravel-5.4

如何从表中获取当前行id,因为我需要编辑/删除此行。我创建了隐藏字段,然后使用$ id = $ request-> record_id;但它不起作用。有人可以帮忙解释一下如何做到这一点。

刀片模板:

<form class="form-horizontal" role="form" method="POST"
                      action="{{ route('fuel_accounting_action', $category->slug) }}">
                    {{ csrf_field() }}

                    <input type="hidden" name="table_id" value="{{ $table->id }}">

                    <table id="table-{{ $table->id }}" class="table table-bordered second_table">
                        <thead>
                        <tr>
                            <th width="45%">Pavadinimas</th>
                            <th width="15%"
                                style="border-left: 2px solid #A6384A; border-top: 2px solid #A6384A;">ISPILTA
                                L.
                            </th>
                            <th width="15%" style="border-top: 2px solid #A6384A;">ISPILTA KG.</th>
                            <th width="15%"
                                style="border-top: 2px solid #A6384A; border-right: 2px solid #A6384A;">VERTE
                                EUR.
                            </th>
                            <th width="10%"></th>
                        </tr>
                        </thead>

                        <tbody>
                        @foreach($table->fuelAccountingRecords as $record)
                            <tr>
                                <td id="name" contenteditable="true">{{ $record->name }}</td>
                                <td id="liters" contenteditable="true"
                                    style="border-left: 2px solid #A6384A;">{{ $record->liters }}</td>
                                <td id="show_kilograms">{{ $kilograms = number_format($table->density * $record->liters, 2, '.', '') }}</td>
                                <td id="show_price"
                                    style="border-right: 2px solid #A6384A;">{{ number_format($table->price * $kilograms, 2, '.', '') }}</td>
                                <td id="action">
                                    <input type="hidden" name="record_id"
                                           value="{{ $record->id }}">

                                    <button id="editRecord" type="submit" class="btn btn-success btn-sm"
                                            name="editRecord"><i class="fa fa-pencil" aria-hidden="true"></i>
                                    </button>

                                    <button id="deleteRecord" type="submit"
                                            onclick="return confirm('Ar tikrai norite ištrinti')"
                                            class="btn btn-danger btn-sm"
                                            name="deleteRecord"><i class="fa fa-trash" aria-hidden="true"></i>
                                    </button>
                                </td>
                            </tr>

                            <?php
                            $used_kilograms = $used_kilograms + ($table->density * $record->liters);
                            $used_liters = $used_liters + $record->liters;
                            $used_money = $used_money + ($table->price * $kilograms);
                            ?>
                        @endforeach
                        </tbody>
                    </table>

                    <div align="left">
                        <button id="addRow" type="button" class="btn btn-lg"
                                data-table-id="{{ $table->id }}"><i class="fa fa-plus" aria-hidden="true"></i>
                        </button>
                    </div>
                </form>

控制器行:

$test = $request->record_id;

        dd($test);
  • 我使用pastebin因为它更适合阅读代码

2 个答案:

答案 0 :(得分:0)

您可以像<tr>这样<tr id="your id">提供ID {/ 1}}。

但我建议你在JS中创建一个删除行的函数。 你可以像这样使用它

$(document).on('click','.remove',function(){
        var button = $(this).closest("tr");
        button.remove();
        });

答案 1 :(得分:0)

你可以使用如下的jquery函数。

$(document).on('click','#deleteRecord',function()

  {

var id= $(this).closest('tr').find('td').find('input').val();

 $.ajax(

{

    type: 'DELETE',
    dataType: 'json',

    url: '/your route name/' + id,
     headers: {
         'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                        },




    success: function(data)

    {


        if(data.title=='success')
        $(this).closest('tr').remove();

    }



});




 });


or you can try this as well

var id=$(this).closest('tr').find('[name="record_id"]').val();

我希望它应该有用。为编辑做同样的事情

您可以使用ajax来调用控制器功能,如下所示: -

在控制器功能

          public function delete_row(modelname $modelname)
        {

             $status=$modelname->delete();

         if($status==1)
       {
   echo json_encode(array('title'=>'success'));
      }

      }