#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">