Laravel 將「點閱記錄」改成非同步 queue 寫入資料庫

認識 Laravel Queue Jobs 在建立 Web 應用程式時,可能會遇到一些任務,例如解析和儲存上傳的 CSV 文件,這些任務在典型的 Web 請求中執行起來可能耗時過長,或是網站文章流量大,可以改成非同步 queue 寫入資料庫,以減少對主流程的影響,並提升效能與延展性。 queue 是一種先進先出的資料結構,而 Laravel 的 queue job …

認識 Laravel Queue Jobs 在建立 Web 應用程式時,可能會遇到一些任務,例如解析和儲存上傳的 CSV 文件,這些任務在典型的 Web 請求中執行起來可能耗時過長,或是網站文章流量大,可以改成非同步 queue 寫入資料庫,以減少對主流程的影響,並提升效能與延展性。 queue 是一種先進先出的資料結構,而 Laravel 的 queue job …
在 session-based(如 web guard)驗證流程中取得的方法 在 Laravel 的 middleware 中,你可以透過 Auth 或 request()->user() 取得目前登入的使用者資訊。這取決於你使用的是哪一種 guard(預設是 web)。以下是常見的寫法範例 方法 1:使用 Auth facade 方法 2:從 $request 取得使用者 如果使用自訂 guard 若你有定…

在 Laravel 中實作「文章點閱率統計」,要達成以下條件: 在控制器記錄的方式 資料表設計 建立一個 blog_views 表記錄點閱資訊,先建立 migration table: create_blog_views_table.php 然後在檔案: xxxx_xx_xx_create_blog_views_table.php 內加入下列程式碼 模型設定 建立 Model:BlogView 控制器記錄邏輯 在 PostControl…

在 Vue 3 中,當父組件更新傳入子組件的參數 props(例如留言列表 comments)時,子元件會自動接收到更新的值。只要你遵循 單向資料流(props down, events up) 的原則,就可以讓留言資料在父子組件之間正常更新。 正確的父子組件設計方式如下: 父組件:傳入 props 子組件:接收 props,避免修改 props 本身 常見錯誤:…

文章留言的下方,一般會將所有的留言渲染出來,但奇怪的是為何只是輸入留言,還沒有按送出(Post Comment) ,所有的留言記錄為經由 v-for 全新渲染乙次? 程式段如下 在第5行的地方 :key=”{ i }” 是錯的寫法,Vue 的 :key 不能給一個物件,否則會造成渲染效能問題與怪異行為。 改成這樣: 或更好: 完整程式碼示範如下:

虛擬桌面快捷鍵 在Windows 11中,快速切換桌面可以使用鍵盤快捷鍵Windows 鍵+ Ctrl + 左/右箭頭。 也可以使用Windows 鍵+ Tab開啟工作檢視來切換或新增桌面。 新增桌面: Windows 鍵+ Tab -> 點選「新增桌面」 Windows 鍵+ Ctrl + D 關閉桌面: Windows 鍵+ Ctrl + F4 其它快速鍵的說明: 雙螢幕快捷鍵 這些快捷鍵可以幫…

本章將探討 Vue3 的 Suspense 元件如何提升 skeleton 載入狀態的使用者體驗。 Suspend 是 Vue3 的一個內建元件,用於協調元件樹中的非同步依賴項。它可以在等待元件樹中嵌套的多個非同步依賴項解析時渲染載入狀態,它的架構如官方網站說明如下。 加載中狀態 <Suspense> 組件有兩個插槽(slot):#default 和 #fallback。…

在上一篇 在 Vue.js 建立一個 公用方法 來 移除 HTML 標籤 ,可以在文章列表中使用,以避免 HTML 標籤破壞了版面,但文章內容若有心人將 JS 放入文章裡面,就可能會造成網頁的漏洞,這時可以使用 DOMPurify 套件,來防止像 <script>、onerror、XSS 等危險標籤進入網頁的應用。 安裝 DOMPurify 建立 Composable:useStri…

Vuejs 有提供許多內鍵方法如: v-text、v-html 來處理 HTML 格式的文章,但有時並無法滿足版面的需求。 Vuejs 原生方法 v-html 網頁產出的版面有可能會是如下,整個版面都被破壞了。 一般方法:stripHtmlTags 在 Vue.js 中,如果想 移除 HTML 標籤(即清理 innerHTML 或不讓 HTML 被渲染出來),可以在組件中使用以下方法:…

假設有一個部落格,想檢索兩個日期之間的所有貼文。聽起來很熟悉?那具體該怎麼做呢? 一般的做法 這看起來確實是一個微不足道的問題,答案也很簡單(但完全錯誤):只需使用 BETWEEN(或在 Laravel 中使用 whereBetween),如下所示: 大部份的人都這樣做過(至少我這樣做過),檢索 6 月發布的所有帖子。這裡的問題是,p…