提交表单后收到 404 未找到错误

问题描述 投票:0回答:2

我知道这是一个愚蠢的问题,但我正处于学习 Laravel 的最初阶段,没有任何人的指导或帮助。所以请不要介意。得到答案后我会删除它。

我正在使用具有反应惯性的 Laravel。我正在提交从“/p/create”到“/p”路线的表单,该表单返回 404 未找到错误。找不到这里出了什么问题。

我的路线:

Route::get('/p/create', function () {
    return Inertia::render('Posts');
})->name('posts.create');

Route::post('/p', [PostController::class, 'store']);

我的帖子控制器:

<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;

class PostController extends Controller
{

    public function store()
    {
        dd(request()->all())
    }
}

'/p/create'的形式


export default function Posts({ auth }) {
    return (
        <div className="post">
            <Navbar auth={auth} />

            <form
                encType="multipart/form-data"
                action="{{ route('posts') }}"
                method="POST"
            >
                <input
                    type="hidden"
                    name="_token"
                    value="{!! csrf_token() !!}"
                />

                <input type="file" name="image" />
                <textarea name="caption" />
                <button type="submit">Post</button>
            </form>
        </div>
    );
}

php reactjs laravel inertiajs
2个回答
0
投票

您定义的“post”路线没有名称属性。改成这样:

Route::post('/p', [PostController::class, 'store'])->name('posts.store');

然后,你就可以像这样使用它了:

action="{{ route('posts.store') }}"

在此处阅读更多信息:https://laravel.com/docs/11.x/routing#named-routes


0
投票

您错过了路线名称,只需将路线更改为:

Route::post('/p', [PostController::class, 'store'])->name('posts.store');
© www.soinside.com 2019 - 2024. All rights reserved.