使用 GitHub Action 來做簡單的 CI/CD

CI/CD,是由兩個詞彙,持續整合 (Continuous Integration) 與持續交付 (Continuous Deployment) 組合而來:CI (Continuous Integration),意即持續整合,在這個階段會建立一個正式環境的副本並進行自動測試,確保程...

簡單介紹 Laravel 的服務容器

Laravel 提供一種名為服務容器(Service Container)的工具,用來管理類與類之間的依賴與依賴注入。但在介紹服務容器之前,先來介紹一下什麼是依賴?什麼是依賴注入?什麼是依賴?如果一個A類中的方法需要使用到B...

將部落格從 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'...

Laravel ORM 的新功能,One of Many

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

PurgeCSS,清除沒有使用到的 CSS

最近開始在學習 Tailwins CSS,Tailwind CSS 有一個很讚的功能,就是使用 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...