在laravel 9 /Inertiajs 2/vuejs 3中,我在模态对话框中有联系我们表单,当我在主页上打开它时
http://local-bi-currencies.com/
我用inertiajs方法提交这个表格
formEditor.value.post(route('frontend.store_contact_us'), {
preserveScroll: false,
onSuccess: (resp) => {
show_contact_us_modal.value = false
Toast.fire({
icon: 'success',
title: 'Your message was successfully sent. You will get feedback within next 24 hours !!'
})
},
onError: (e) => {
showRTE(e)
console.log(e)
}
})
和控制器中的动作:
public function store_contact_us(ContactUsRequest $request)
{
$contactUs = null;
try {
DB::beginTransaction();
$contactUs = ContactUs::create([
'title' => $request->title,
'author_id' => auth()->user()->id,
'content_message' => $request->content_message
]);
DB::commit();
} catch (QueryException $e) {
DB::rollBack();
return back()->withErrors(['message' => $e->getMessage()]);
}
return Inertia::render('Frontend/Home/Home', // Link to home page again
['' => $contactUs]
);
}
作为结果,新的contsct保存好,但我的页面的url成为存储方法的url
http://local-bi-currencies.com/store_contact_us
这是错误的URL,如果要进行一些操作,可能会引发错误。
我在这里不使用axios,因为我想使用inertiajs的发布/验证功能,而axios请求中没有这些功能。如果有一种方法可以返回Inertia::render of store_contact_us方法的一些假的vue文件,而无需重新打开整个hoem页面,也无需将浏览器的urt更改为
http://local-bi-currencies.com/store_contact_us
?
谢谢!
1条答案
按热度按时间woobm2wo1#
你可以按照评论中的说明重定向回去,或者,如果你想转到一个特定的页面,你可以使用
to_route
(简化示例):