Кнопка удаления не работает внутри bootstrap modal в Laravel

#laravel #bootstrap-4 #modal-dialog

#laravel #bootstrap-4 #modal-dialog

Вопрос:

Я создал разбивку на страницы в Laravel, и я также создал кнопку удаления, которая позволяет мне удалять записи, которые отлично работают. Мой следующий шаг — обновить кнопку удаления с помощью bootstrap modal. Модальная загрузка сама по себе работает нормально, без помещения какого-либо кода внутрь модального тела. После того, как я скопировал вставленный код удаления внутри модального тела, я получаю сообщения об ошибках:

 Route [/admin/resellers/{{ $reseller->id ] not defined. (View: 
  

Но чего я не понимаю, так это того, что этот код маршрутизации отлично работает в Laravel code и не работает в bootstrap modal code, когда оба являются одинаковыми кодами! почему! Я потратил один час, пытаясь выяснить, есть идеи!

Перед добавлением в код начальной загрузки это работает, если Laravel работает нормально (без bootstrap modal).

 <td class="center">
 <form action="/admin/resellers/{{ $reseller->id }}" method="POST">
     <strong><a href="/admin/resellers/{{ $reseller->id }}" class="btn btn-primary btn-sm btn-mini" >
     <i class="fas fa-pen fa-fw"></i>View</a></strong>
          @method('DELETE')
          @csrf
     <button class="btn btn-secondary btn-sm btn-mini"><i class="far fa-edit fa-fw"></i>Edit
     <button class="btn btn-danger btn-sm btn-mini" ><i class="fas fa-times fa-fw"></i>Delete</button>
</form>
  

Кнопка запуска модального

 <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#deletes">
    <i class="fas fa-times fa-fw"></i>Delete</button>
  

В маршрутизаторе

 Route::delete('/admin/resellers/{reseller}','ResellerController@destory');
  

Внутри bootstrap modal закодировано то же самое удаление

 <!-- Delete Modal -->
<div class="modal modal-danger fade" id="deletes" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
    <div class="modal-dialog">
      <div class="modal-content">
        <div class="modal-header">
          <h5 class="modal-title text-center" id="exampleModalLabel"><h4 class="modal-title">Delete Confirmation</h4></h5>
          <button type="button" class="close" data-dismiss="modal" aria-label="Close">
            <span aria-hidden="true">amp;times;</span>
          </button>
        </div>
        <form action="{{ route('/admin/resellers/{{ $reseller->id ') }}" method="POST">

            @method('DELETE')
            @csrf

        <div class="modal-body">
            <p>Are you sure you, want to delete?</p>
            <input type="hidden" name="reseller-id" id="reseller-id" value="">
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-success" data-dismiss="modal"><i class="fas fa-times fa-fw"></i>No, Cancel it.</button>
          <button type="button" class="btn btn-primary"><i class="fas fa-check fa-fw"></i>Yes, Delete it.</button>
        </div>
        </form>
      </div>
    </div>
  </div>
  

Или этот код правильный в javascript

 $('#deletes').on('show.bs.modal', function (event) {
      var button = $(event.relatedTarget)
      
      var reseller-id = button.data('resellerid')
      var modal = $(this)
      modal.find('.modal-body #reseller-id').val(reseller-id);
})
  

Еще раз спасибо, что вникли в это.

Ответ №1:

На блейде route() метод будет работать, если у вас есть name route. Но вы не определили никакого именного маршрута, поэтому было бы :

 <form action="{{ url('/admin/resellers/' . $reseller->id) }}" method="POST">
  

Если вы хотите использовать name route, то определите имя маршрута как :

 Route::delete('/admin/resellers/{reseller}','ResellerController@destory')->name('destoryReseller');
  

Тогда вы можете использовать вот так :

 <form action="{{ route('destoryReseller',  $reseller->id) }}" method="POST">