1

在一天的大部分时间里一直在努力解决这个问题,但我没有找到太多关于它的信息。

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

但是,无论是错误还是成功,Inertia 每次都会以模式返回重定向。

代码如下:

表单组件(反应)

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

控制器

    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.');
    }

而我真的不明白的部分:在组件重新呈现之前在模式中呈现的文本。在此处输入图像描述

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

4

1 回答 1

1

我很确定这是您的控制器方法的返回类型。它设置为string而不是Illuminate\Http\RedirectResponse- 在您删除/替换它后应该可以工作。:)

于 2021-01-07T23:16:22.857 回答