каждый раз, когда я нажимаю «Редактировать», я получаю последнюю вставленную запись. Как можно получить конкретный идентификатор, когда я нажимаю на кнопку редактирования этой конкретной записи?

#laravel #mongodb #laravel-5 #eloquent #edit

#laravel #mongodb #laravel-5 #красноречивый #Редактировать

Вопрос:

Каждый раз, когда я нажимаю «Редактировать», я получаю последнюю вставленную запись. Как можно получить конкретный идентификатор, когда я нажимаю на кнопку редактирования этой конкретной записи?

Я помещаю 2 всплывающих окна, в которых появится всплывающее окно «Добавить праздник», всплывающее окно «Добавить праздник» и «Редактировать праздник» всплывающее окно «Редактировать праздник».

Как я могу решить эту проблему??

вот мой код файла просмотра

 @extends('layouts.master')
@section('content')
<section>
<div class="page-wrapper">
    <div class="container-fluid">
        <div class="row page-titles">
            <div class="col-md-5 align-self-
            </div>
        </div>


        <div class="card">
            <div class="card-body">
                <a href="javascript:void(0)" data-toggle="modal" data-target="#myModalAdd" class="btn btn-info text-white">  Add Holidays</a>

                <div id="myModalAdd" class="modal fade in" tabindex="-1" role="dialog" aria-labelledby="myModalLabelAdd" aria-hidden="true">
                    <div class="modal-dialog">
                        <div class="modal-content">
                            <div class="modal-header">
                                <h4 class="modal-title" id="myModalLabelAdd">Add Holidays</h4>
                                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
                            </div>

                            <div class="modal-body">
                                <form class="form-horizontal" method="POST" action="{{route('store_holidays')}}">
                                @csrf
                                    <div class="form-group">
                                        <label class="col-md-12">Date:</label>
                                        <div class="col-md-12">
                                            <input type="date" name="holidaydate" class="form-control" placeholder="dd/mm/yyyy">
                                        </div>
                                    </div>
                                    <div class="form-group">
                                        <label class="col-md-12">Occasion</label>
                                        <div class="col-md-12">
                                            <input type="text" class="form-control" name="occasion" placeholder="Occasion">
                                        </div>
                                    </div>

                            <div class="modal-footer">
                                <button type="submit" class="btn btn-info waves-effect" data-dismiss="modal">Save</button>
                                <button type="button" class="btn btn-default waves-effect" data-dismiss="modal">Cancel</button>
                            </div>
                        </form>
                    </div>
                        </div>
                        <!-- /.modal-content -->
                    </div>
                    <!-- /.modal-dialog -->
                </div>

                    <div class="table-responsive m-t-40">
                            <table class="table table-bordered table-striped ">
                                <thead>
                                    <tr>
                                        <th>Date</th>
                                        <th>Occasion</th>
                                        <th>Action</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    @foreach($publicHolidays as $holiday)
                                        <tr>
                                            <td>{{$holiday->holidaydate}}</td>
                                            <td>{{$holiday->occasion}}</td>
                                            <td>
                                                <a href="{{url('/edit-holiday', $holiday->id)}}"  data-toggle="modal" data-target="#myModal"><i class="fa fa-edit fa-lg" style="color:#0066ff" aria-hidden="true"></i></a>
                                                <a href="{{url('/delete-holiday', $holiday->id)}}"><i class="fa fa-trash fa-lg" style="color:red" aria-hidden="true"></i></a>
                                            </td>
                                        </tr>
                                    @endforeach
                                </tbody>
                            </table>
                        </div>
                    </div>

                <div id="myModal" class="modal fade in" tabindex="-1" role="dialog" aria-labelledby="myModalLabelEdit" aria-hidden="true">
                    <div class="modal-dialog">
                        <div class="modal-content">
                            <div class="modal-header">
                                <h4 class="modal-title" id="myModalLabelEdit">Edit Holiday</h4>
                                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
                            </div>

                            <div class="modal-body">
                                <form class="form-horizontal" method="POST" action="{{ url('edit-holiday', $holiday->id) }}">
                                @csrf
                                    <div class="form-group">
                                        <label class="col-md-12">Date:</label>
                                        <div class="col-md-12">
                                            <input type="date" name="holidaydate" class="form-control" placeholder="dd/mm/yyyy" value="{{$holiday->holidaydate}}">
                                        </div>
                                    </div>
                                    <div class="form-group">
                                        <label class="col-md-12">Occasion</label>
                                        <div class="col-md-12">
                                            <input type="text" class="form-control" name="occasion" placeholder="Occasion" value="{{$holiday->occasion}}">
                                        </div>
                                    </div>
                                </form>
                            </div>

                            <div class="modal-footer">
                                <button type="submit" class="btn btn-info waves-effect" data-dismiss="modal">Update</button>
                                <button type="button" class="btn btn-default waves-effect" data-dismiss="modal">Cancel</button>
                            </div>

                        </div>
                    </div>
                </div>
            </div>
        </div>
</div>
</section>
@endsection

  

вот мой код файла контроллера

 <?php

namespace AppHttpControllers;

use AppHoliday;
use Session;
use IlluminateHttpRequest;
use IlluminateSupportFacadesValidator;
use IlluminateSupportFacadesInput;
use IlluminateSupportFacadesRedirect;
use IlluminateSupportFacadesHash;


class HolidayController extends Controller
{
    public function addHolidays(Request $request)
    {
        $holiday = new Holiday();

        $holiday->holidaydate = $request->get('holidaydate');
        $holiday->occasion = $request->get('occasion');
        $holiday->save();

        return redirect('list-holidays')->with('success', 'Holiday Added Successfully');
    }

    public function listHolidays()
    {
        $publicHolidays = Holiday::all();
        return view('pages.listholiday', compact('publicHolidays'));
    }

    public function editHoliday($id)
    {
        $holiday = Holiday::find($id);
        return view('pages.listholiday', compact('holiday', 'id'));
    }

    public function updateHoliday(Request $request, $id)
    {
        $holiday = Holiday::find($id);
        $holiday->holidaydate = $request->get('holidaydate');
        $holiday->occasion = $request->get('occasion');
        $holiday->save();
        return redirect('list-holidays')->with('success', 'Holiday Updated Successfully');
    }

    public function deleteHoliday($id)
    {
        $holiday = Holiday::find($id);
        $holiday->delete();
        return redirect('list-holidays')->with('Success', 'Record Deleted SuccessFully!');
    }

}

  

Мой файл блейда

 @extends('layouts.master')
@section('content')
<section>
<div class="page-wrapper">
    <div class="container-fluid">
        <div class="row page-titles">
            <div class="col-md-5 align-self-center">
                <h4 class="text-themecolor">{{__(' Holiday Schedule')}}</h4>
            </div>
        </div>

        {{-- POP-UP Form --}}
        <div class="card">
            <div class="card-body">
                <a href="javascript:void(0)" data-toggle="modal" data-target="#myModalAdd" class="btn btn-info text-white">  Add Holidays</a>

                <div id="myModalAdd" class="modal fade in" tabindex="-1" role="dialog" aria-labelledby="myModalLabelAdd" aria-hidden="true">
                    <div class="modal-dialog">
                        <div class="modal-content">
                            <div class="modal-header">
                                <h4 class="modal-title" id="myModalLabelAdd">Add Holidays</h4>
                                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
                            </div>

                            <div class="modal-body">

                                <form class="form-horizontal" method="POST" action="{{route('store_holidays')}}">
                                @csrf
                                    <div class="form-group">
                                        <label class="col-md-12">Date:</label>
                                        <div class="col-md-12">
                                            <input type="date" name="holidaydate" class="form-control" placeholder="dd/mm/yyyy">
                                        </div>
                                    </div>
                                    <div class="form-group">
                                        <label class="col-md-12">Occasion</label>
                                        <div class="col-md-12">
                                            <input type="text" class="form-control" name="occasion" placeholder="Occasion">
                                        </div>
                                    </div>
                                </form>
                            </div>
                            <div class="modal-footer">
                                <button type="submit" class="btn btn-info waves-effect" data-dismiss="modal">Save</button>
                                <button type="button" class="btn btn-default waves-effect" data-dismiss="modal">Cancel</button>
                            </div>
                        </div>
                        <!-- /.modal-content -->
                    </div>
                    <!-- /.modal-dialog -->
                </div>
                {{-- END POPUP FORM --}}
                    <div class="table-responsive m-t-40">
                            <table class="table table-bordered table-striped ">
                                <thead>
                                    <tr>
                                        <th>Date</th>
                                        <th>Occasion</th>
                                        <th>Action</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    @foreach($publicHolidays as $holiday)
                                        <tr>
                                            <td>{{$holiday->holidaydate}}</td>
                                            <td>{{$holiday->occasion}}</td>
                                            <td>
                                                {{-- <a href="{{url('/edit-holiday', $holiday->id)}}"  data-toggle="modal" data-target="#myModal"><i class="fa fa-edit fa-lg" style="color:#0066ff" aria-hidden="true"></i></a> --}}
                                                <a class="holiday_modal" href="{{url('/edit-holiday', $holiday->id)}}"  data-toggle="modal" data-target="#myModal" data-holidaydate="{{ $holiday->holidaydate }}" data-action="{{ route('edit_holidays', $holiday->id) }}" data-occasion="{{$holiday->occasion}}"><i class="fa fa-edit fa-lg" style="color:#0066ff" aria-hidden="true"></i></a>
                                                <a href="{{url('/delete-holiday', $holiday->id)}}"><i class="fa fa-trash fa-lg" style="color:red" aria-hidden="true"></i></a>
                                            </td>
                                        </tr>
                                    @endforeach
                                </tbody>
                            </table>
                        </div>
                    </div>

                    <div id="myModal" class="modal fade in" tabindex="-1" role="dialog" aria-labelledby="myModalLabelEdit" aria-hidden="true">
                            <div class="modal-dialog">
                                <div class="modal-content">
                                     <div class="modal-header">
                                          <h4 class="modal-title" id="myModalLabelEdit">Edit Holiday</h4>
                                              <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
                                     </div>
                                   <div class="modal-body">
                                        <form class="form-horizontal" method="POST" id="action_modal">
                                         @csrf
                                             <div class="form-group">
                                                 <label class="col-md-12">Date:</label>
                                                  <div class="col-md-12">
                                                         <input type="date" name="holidaydate" class="form-control" placeholder="dd/mm/yyyy" id="holidaydate">
                                                    </div>
                                              </div>
                                               <div class="form-group">
                                                     <label class="col-md-12">Occasion</label>
                                                     <div class="col-md-12">
                                                         <input type="text" class="form-control" name="occasion" placeholder="Occasion" id="occasion">
                                                       </div>
                                                 </div>
                                          </form>
                                     </div>

                                     <div class="modal-footer">
                                           <button type="submit" class="btn btn-info waves-effect" data-dismiss="modal">Update</button>
                                           <button type="button" class="btn btn-default waves-effect" data-dismiss="modal">Cancel</button>
                                       </div>
                                   </div>
                                </div>
                              </div>
                           </div>
            </div>
        </div>
</div>
<script type="text/javascript">
    $('.holiday_modal').click(function (event) {
        $('#holidaydate').attr('value', $(this).data('action'));
        $('#occasion').attr('value', $(this).data('occasion'));
        $('#action_modal').attr('action', $(this).data('action'));;

    })
</script>
</section>

@endsection

  

Комментарии:

1. Извините, я не понял должным образом.

2. я не думаю, что нужен весь файл блейда, но, возможно, часть кода для формы кнопки редактирования?

3. Код для кнопки редактирования праздничных дней <a href=»{{url(‘/edit-holiday’, $holiday->id)}}» data-toggle=»модальный» data-target=»#myModal»><i class=»fa fa-edit fa-lg» style=»color:#0066ff» aria-hidden=»true»></i></a>

4. Вы видели holiday-> id при наведении курсора мыши на кнопку?

5. Да, я проверил, в то время он отображал этот конкретный идентификатор этой записи

Ответ №1:

Попробуйте с этим

В вашей кнопке редактирования

 <a class="holiday_modal" href="{{url('/edit-holiday', $holiday->id)}}"  data-toggle="modal" data-target="#myModal" data-holidaydate="{{ $holiday->holidaydate }}" data-action="{{ route('edit-holiday', $holiday->id) }}" data-occasion="{{$holiday->occasion}}"><i class="fa fa-edit fa-lg" style="color:#0066ff" aria-hidden="true"></i></a>
  

Ваш модальный

 <div id="myModal" class="modal fade in" tabindex="-1" role="dialog" aria-labelledby="myModalLabelEdit" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
             <div class="modal-header">
                  <h4 class="modal-title" id="myModalLabelEdit">Edit Holiday</h4>
                      <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
             </div>
           <div class="modal-body">
                <form class="form-horizontal" method="POST" id="action_modal">
                 @csrf
                     <div class="form-group">
                         <label class="col-md-12">Date:</label>
                          <div class="col-md-12">
                                 <input type="date" name="holidaydate" class="form-control" placeholder="dd/mm/yyyy" id="holidaydate">
                            </div>
                      </div>
                       <div class="form-group">
                             <label class="col-md-12">Occasion</label>
                             <div class="col-md-12">
                                 <input type="text" class="form-control" name="occasion" placeholder="Occasion" id="occasion">
                               </div>
                         </div>
                  </form>
             </div>

             <div class="modal-footer">
                   <button type="submit" class="btn btn-info waves-effect" data-dismiss="modal">Update</button>
                   <button type="button" class="btn btn-default waves-effect" data-dismiss="modal">Cancel</button>
               </div>
           </div>
        </div>
      </div>
   </div>
  

В конце файла добавьте скрипт

 <script type="text/javascript">
        $('.holiday_modal').click(function (event) {
            $('#holidaydate').attr('value', $(this).data('holidaydate'));
            $('#occasion').attr('value', $(this).data('occasion'));
            $('#action_modal').attr('action', $(this).data('action'));;

        })
</script>
  

Надеюсь, это поможет 🙂

Комментарии:

1. Это работает, но это не выборка записи из базы данных, поля пусты

2. Нет, все та же проблема

3. не могли бы вы, пожалуйста, показать свой сгенерированный HTML-код любого поля модального

4. Я обновляю вопрос с именем «Мой файл blade is».

5. Извините, сэр, но та же проблема. Запись не может быть извлечена из базы данных