Приятное оповещение для href в таблицах данных

#php #href

#php #href

Вопрос:

Я пытаюсь добавить предупреждающее сообщение softdeletes для моей таблицы данных, введите описание изображения здесь

Но примеры предназначены для кнопок, я использую ссылку h ref для доступа к функции softdeletes в контроллере

это моя таблица данных, созданная с помощью yajra

MailMessageDataTable.php

     public function dataTable($query)
{
    return datatables()
        ->eloquent($query)
        ->addColumn('action', function ($MailMessage) {
            return '<a href="' . route('MailMessage.show', $MailMessage->id) . '"class="btn btn-outline btn-primary btn-xs dim"
            data-toggle="tooltip" tittle="' . __('messages.index.show') . '"><i class="fa fa-eye"></i></a>'
                .($MailMessage->deleted_at ? '' :
               '<a href="' . route('MailMessage.edit', $MailMessage->id) . '"class="btn btn-outline btn-primary btn-xs dim"
            data-toggle="tooltip" tittle="' . __('messages.index.edit') . '"><i class="fa fa-edit"></i></a>')
                .'<a href="' . route('MailMessage.delete_message', $MailMessage->id) . '"class="btn btn-outline btn-primary btn-xs dim"
            data-toggle="tooltip" tittle="' . __('messages.index.delete') . '"><i class="fa fa-trash"></i></a>';
        });
}
  

последний href важен для использования softdeletes

Ответ №1:

Я решил это следующим образом.

Я добавил непосредственно перед маршрутом удаленный доступ к данным, который фиксирует ссылку

                     .'<a href="" data-name="' . $MailMessage->id .'" data-remote="' . route('mail-message.destroy', $MailMessage->id) . '"
                    class="btn btn-outline btn-primary btn-xs dim btn-action" style="margin-left:2px" data-toggle="tooltip" title="' . __('messages.index.delete') . '">
                    <i class="fa fa-trash"></i>
                    </a>';
  

и в представлении я добавил скрипт

  <script>
        $(function () {
            let taskTable = $('#task-table');

            taskTable.on('click', '.btn-action[data-remote]', function (e) {
                e.preventDefault();
                let url = $(this).data('remote');
                let name = $(this).data("name");
                Swal.fire({
                    title: $('#swal-title').val()   ' '   name,
                    text: $('#swal-message').val(),
                    icon: "question",
                    showConfirmButton: true,
                    showCancelButton: true,
                }).then(function (value) {
                    if (value.value) {
                        axios.delete(url)
                            .then((response) => {
                                $('#task-table').DataTable().draw(false);
                                showAlert(response.data.message)
                            });
                    }
                })
            });
        });
    </script>