如何解决在 Modal 中打开 InertiaJS 表单响应,带有快速缓存控制消息
一天中大部分时间都在为这个问题而苦苦挣扎,但我没有找到太多关于它的信息。
这只是一个带有一些 Laravel 验证的简单表单组件,它只是发出一个 API 请求,并通过一条 flash 消息返回一个错误或成功。这一切都以相当简单的方式记录下来。
然而,无论是错误还是成功,Inertia 每次都会以模态返回重定向。
代码如下:
表单组件(React)
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.');
}
还有我真的不理解的部分:在组件重新呈现之前在模态中呈现的文本。
非常感谢这里的任何帮助,如果我遗漏了任何内容,很乐意回答任何问题或提供更多详细信息。
解决方法
我很确定这是您的控制器方法的返回类型。它设置为 string
而不是 Illuminate\Http\RedirectResponse
- 在您删除/替换它后应该可以工作。 :)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。