將部落格從 Bootstrap 5 改版至 Tailwind CSS 的心得

又發了一篇關於前端的文章,真的是不務正業的後端 😅。但分類在日常分享應該沒關係吧?。講古一下,雖然不是很重要 😂。其實這個部落格最一開始,是參考 Laravel China 的課程,使用 Laravel 6 與 Bootstrap 4 開發的...

避免 Laravel ORM 的 N+1 問題

目前大多框架都會使用 ORM (Object Relational Mapping,物件關係對映) 的方式與資料庫進行互動。ORM 的用途,是將關聯式資料庫的資料表,對應到應用程式中的物件。對資料庫的操作都會使用複雜的物件包裝好並模組化...

在 Laravel ORM 中,使用 AND 與 OR 組合 WHERE 條件的小技巧

有時候在撈取資料表資料的時候,因為 WHERE 條件較為複雜。可能需要使用多個 AND 或是 OR 才能撈取到我們想要的資料。假設我們的 WHERE 過濾條件如下WHERE ('sex' = 'male' AND age > 18) OR ('sex' = 'female' A...

Laravel ORM 的新功能,One of Many

在 Laravel 8.42 版本中,新增了一個蠻有趣的語法 One of Many。可以用來找出一對多關聯中,再「多」裡面「最新」的那一筆紀錄,並建立一對一關聯。簡單舉個例子,以部落格文章(Post)與留言回覆(Reply)舉例一篇...

PurgeCSS,清除沒有使用到的 CSS

最近開始在學習 TailwinsCSS。TailwindCSS 有一個很讚的功能,就是使用 PurgeCSS 去清除沒有使用到 CSS class name。將 CSS 檔案進行大幅度的瘦身。此時小弟我有一個念頭。「PurgeCSS 可不可以幫 Bootstrap 的 CSS...

用 Laravel Sail 來建置 Laravel 開發環境

在 Laravel 開發環境建置上,官方與非官方都有提供非常多的方式。在 MacOS 上,有輕量級的開發環境 Laravel Valet,之前也有發過一篇文章簡單介紹如何使用。在 Windows 上,雖然沒有 Valet 可以使用,但依然有許多優...

簡單介紹 Laravel 的 DB Transactions

MySQL 資料庫,PHP 的好夥伴。在現在的版本中,MySQL 資料庫基本上都是使用 innoDB 作為預設的資料庫引擎。innoDB 與之前 MyISAM 相比,支援了 ACID 相容的交易(Transaction)功能。所謂的交易,是資料庫管理系統執...

Laravel 8.37 的新功能,匿名 Migration

起因於某次 Laravel 的 issue(#5899)中提出的一個狀況。問題中描述的狀況是在專案版本 1.0 的時候建立一個 migration,名稱為 create_new_table在專案版本 1.1 的時候建立一個 migration,名稱為 drop_new_table...

簡單介紹 Laravel 的 replicate helper

如果需要從資料庫中複製一筆資料來產生新資料的話,Laravel 的 ORM 提供一個 replicate 方法。在複製完之後,你還可以對資料內容進行調整並儲存,生成一筆新的資料。下面是範例,首先我們先取得 id 為 1 的資料$post...

在 Laravel 中使用 Algolia 實作搜尋功能

Algolia 是一個專精於搜尋的網路服務。與 Elasticsearch 類似,只要將可供搜尋的資料匯入至 Algolia 的資料庫(Index)。就可以在前端使用 Call API 的方式進行搜尋並取得搜尋結果。有許多網站或是程式文件都是使用...