Ubah hala Inertia/Laravel PATCH juga cuba mengemas kini perujuk
P粉265724930
2023-09-04 11:56:57
<p>Saya mempunyai aplikasi Laravel/InertiaJS tempat saya melaksanakan permintaan Axios daripada bahagian hadapan Vue untuk mengemas kini beberapa model. Dalam kes saya, saya mempunyai halaman paparan <strong>Cadangan</strong> yang turut memaparkan <strong>Tasks</strong> </p>
<p>Saya mempunyai subkomponen Vue yang melakukan panggilan Axios untuk mengemas kini tugas tertentu: </p>
<pre class="brush:php;toolbar:false;">const moveToNextStatus = (status) =>
console.log('run')
// kemas kini status tugasan menggunakan aksios
axios.patch(`/data/tasks/${props.task.id}`, {
status: status
})
}</pre>
<p>Ini ialah laluan yang ditunjukkannya:</p>
<pre class="brush:php;toolbar:false;">Route::patch('/data/tasks/{task}', [AppHttpControllersTaskController::class, 'update'])->name(' tasks.update');</pre>
<p>Kemudian, dalam Laravel <strong>TaskController</strong> saya, kaedah kemas kini saya kelihatan seperti ini: </p>
<pre class="brush:php;toolbar:false;">kemas kini fungsi awam (Minta $request, Task $task)
{
$task->update($request->all());
return redirect()->back();
}</pre>
<p>Atas sebab tertentu, apabila permintaan Axios untuk PATCH /tasks/{task} dijalankan, ia turut memanggil laluan <strong>PATCH /proposals/{proposal}</strong> < /p>
<p>Mungkin ini ada kaitan dengan pengalihan daripada komponen kanak-kanak? Bolehkah sesiapa membantu saya? </p>
Dokumentasi inersia menyatakan;
Anda boleh mendapatkannya dalam dokumentasi di sini: https://inertiajs.com/redirects
Ia juga mahu anda menggunakan pembantu bukan standard untuk ubah hala, seperti
Saya tidak bersetuju dengannya, tetapi itulah hakikatnya - menggunakan 303 apabila halaman tidak mengubah hala sama sekali nampaknya melanggar piawaian kod status rangkaian.