InertiaJS 表单响应以模式打开,带有快速缓存控制消息

InertiaJS Form Responses opening in Modal, with a quick Cache-Control Message

一天的大部分时间都在为这个问题苦苦挣扎,但我没有找到太多相关信息。

这只是一个带有一些 Laravel 验证的简单表单组件,它只是通过闪现消息发出 API 请求和 returns 错误或成功。这一切都以相当简单的方式记录在案。

但是,无论是错误还是成功,Inertia returns 每次都会在模态中重定向。

代码如下:

Form Component (React)

    function handleSubmit(e) {
        e.preventDefault()
        setSending(true)
        Inertia.post('/shop/quote-request', formValues, {
            onFinish: setSending(false),
        })
    }

Controller

    public function standardSubmit(Request $request): string
    {
        $form = $this->validate($request, [
            'companyName' => 'required|max:50',
            'name' => 'required|max:50',
            'email' => 'required|email:rfc,dns',
            'phoneNumber' => 'required'
        ]);
        if (empty($request['comments'])) {
            $comments = 'No Content';
        } else ($comments = $request['comments']);
        try {
            Zendesk::tickets()->create([
            'subject' => 'Subject',
            'recipient' => 'email@email.com',
            'email_cc_ids' => '',
            'tags' => 'mtsps-tag',
            'requester' => [
                'email' => $form['email'],
                 'name' => $form['name']
            ],
            'comment' => [
                'html_body' =>
                "Company Size: " . $request['size']
                . "</br></br>" . "Message: " . $comments

            ],
            'group_id' => 'xxxxxxxxx',

            'priority' => 'normal'
        ]);
        } catch (\Throwable $th) {
            return Redirect::route('shop.quote_request')->with('error', 'Something went wrong, please try again.');

        }
        return Redirect::route('shop.quote_request')->with('success', 'Your message has been delivered, someone will be in touch soon.');
    }

而我确实不明白的部分:在组件重新呈现之前在模式中呈现的文本。

非常感谢这里的任何帮助,如果我遗漏了什么,很乐意回答任何问题或提供任何进一步的细节。

我很确定这是您的控制器方法的 return 类型。它设置为 string 而不是 Illuminate\Http\RedirectResponse - 应该在你 remove/replace 之后工作。 :)