在一天的大部分时间里一直在努力解决这个问题,但我没有找到太多关于它的信息。
这只是一个带有一些 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.');
}
而我真的不明白的部分:在组件重新呈现之前在模式中呈现的文本。
非常感谢这里的任何帮助,如果我遗漏了任何内容,很乐意回答任何问题或提供任何进一步的细节。