Маршрут Slim/Twig не найден (404) при попытке дублировать счет через AJAXPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Маршрут Slim/Twig не найден (404) при попытке дублировать счет через AJAX

Сообщение Anonymous »

Я работаю над приложением Laravel для управления счетами. Я пытаюсь реализовать функцию дублирования счетов, но при выполнении вызова AJAX сталкиваюсь с ошибкой 404 «Ресурс не найден».
Вот мое определение маршрута:

Код: Выделить всё

$this-\>group('/electronic-invoices', function () use ($container) {
$this-\>post('/duplicate/{id}', InvoiceOutController::class . ':duplicate')-\>setName('duplicate_electronic_invoices');
});
Вот соответствующая часть моего InvoiceOutController:

Код: Выделить всё

public function duplicate($request, $response, $args)
{
$this->logger->info('Metodo duplicate chiamato con ID: ' . $args['id']);
$invoiceId = $args['id'];
$originalInvoice = ElectronicInvoice::find($invoiceId);

if (!$originalInvoice) {
return $response->withJson(['success' => false, 'message' => 'Fattura non trovata'], 404);
}

try {
DB::beginTransaction();

$newInvoice = $originalInvoice->replicate();
$newInvoice->invoice_number = $this->generateNewInvoiceNumber();
$newInvoice->date = date('Y-m-d');
$newInvoice->save();

foreach ($originalInvoice->items as $item) {
$newItem = $item->replicate();
$newItem->invoice_id = $newInvoice->id;
$newItem->save();
}

DB::commit();

return $response->withJson(['success' => true, 'message' => 'Fattura duplicata con successo'], 200);
} catch (\Exception $e) {
DB::rollBack();
return $response->withJson(['success' => false, 'message' => 'Errore durante la duplicazione: ' . $e->getMessage()], 500);
}
}
А вот мой код JavaScript, который выполняет вызов AJAX:

Код: Выделить всё

$('#invoices').on('click', '.duplicate-invoice', function(e) {
e.preventDefault();
var invoiceId = $(this).data('id');
$('#duplicateConfirmModal').modal('show');

$('#confirmDuplicate').off('click').on('click', function() {
$.ajax({
url: '{{ path_for('duplicate_electronic_invoices', {'id': ''}) }}' + invoiceId,
method: 'POST',
success: function(response) {
if (response.success) {
alert(response.message);
table.ajax.reload();
} else {
alert('Errore: ' + response.message);
}
},
error: function() {
alert('Si è verificato un errore durante la duplicazione.');
}
});
$('#duplicateConfirmModal').modal('hide');
});
});
Когда я пытаюсь дублировать счет, я получаю следующую ошибку:

Код: Выделить всё

[Fri Aug  2 17:22:41 2024] ::1:54565 [404]: /electronic-invoices/duplicate/51584
{"error":"Risorsa non trovata."}
Я попробовал следующее:
  • Проверил, что маршрут находится в правильной группе.
  • Проверено на наличие опечаток в имени маршрута.
  • Добавлены операторы журналирования для всего промежуточного программного обеспечения, но ни один из них, похоже, не срабатывает.
  • Проверено, что контроллер и метод существуют и доступны
  • Проверено на наличие любого глобального промежуточного программного обеспечения, которое может мешать
Что может быть причиной этой ошибки 404 и как ее устранить, чтобы дублирование счетов работало правильно?

Подробнее здесь: https://stackoverflow.com/questions/788 ... e-via-ajax
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»