在我的索引頁面上,我制作了一個聊天框。我的 Vue 組件中有一個表單元素,它通過“UseForm”執行慣性帖子。
我遇到的問題是,因為我在“/chatbox/send”上發帖,所以我必須在之后重定向到“index/home”,否則 URL-header 仍然是“/chatbox/send”,我不想要。
此外,頁面在渲染時會再次自動向上滾動。
我的問題; 如何重新渲染頁面以使 URL-header 再次設定為“/home”并且頁面不會向上滾動?
public function sendChatMessage(Request $request) {
$msg = $request->input('text');
$username = Auth::user()->only('name')['name'];
if($this->createChatMessage($msg, $username)) {
return redirect('index/home');
}
return false;
}
uj5u.com熱心網友回復:
你必須在你的 vuejs 中定義它,我想你使用它。
通常它應該是這樣的:
this.$inertia.post(route('chatbox.send'), {text: this.text}, { preserveState: false, preserveScroll: true })
preserveState:用于表示如果在 php 控制器中回傳相同的路由,是否要重繪 頁面。
preserveScroll:用于表示您希望保持與發送時相同的滾動。
更多資訊:https ://inertiajs.com/manual-visits
在你的控制器中,我會這樣做:
public function sendChatMessage(Request $request) {
$msg = $request->input('text');
$username = Auth::user()->only('name')['name'];
if($this->createChatMessage($msg, $username)) {
return redirect()->route('home');
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/462681.html
上一篇:資料庫沒有在Laravel中使用適當的工廠和播種器類播種
下一篇:VBA組合框不回傳第二個下拉串列
