Ajax Загрузка файла в Laravel вызов неправильной функции контроллера - PullRequest
0 голосов
/ 19 июня 2020

У меня в форме загружен файл ajax. Это работает, когда он находится в / create blade-файле .

Однако он не работает в / edit.

кажется, что data.submit() вызывает функцию update() вместо upload().

Я получаю ошибку No query results for model [App\\Models\\RecordName], которая указывает на update() в контроллере.

это основано на этом руководстве https://laraveldaily.com/laravel-ajax-file-upload-blueimp-jquery-library/

<!-- Form -->
<form action="{{ route("form.update", [$record->slug()]) }}" method="POST" enctype="multipart/form-data">
@csrf
@method('PATCH')
...

<!-- File Upload -->
<div class="form-group">
<label for="file_upload">File Upload</label>
<input type="file" id="file_upload" name="attachments[]" data-url="{{ route('file.upload') }}" multiple />
  <input type="hidden" name="file_ids" id="file_ids" value="">
</div>


<!-- JS Section -->
<script>
    $(function () {
        $('#file_upload').fileupload({
            dataType: 'json',
            add: function (e, data) {
                $('#loading').text('Uploading...');
                data.submit();
            },
            done: function (e, data) {
                $.each(data.result.files, function (index, file) {
                    $('<ul>');
                    $('<li class="filename" />').html(file.name + ' (' + file.size + ' KB)').appendTo($('#files_list'));
                    $('</ul>');
                    if ($('#file_ids').val() != '') {
                        $('#file_ids').val($('#file_ids').val() + ',');
                    }
                    $('#file_ids').val($('#file_ids').val() + file.fileID);
                });
                $('#loading').text('');
            }
        });
    });
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...