Laravel 系列 - 7: Laravel 的小知識

更新於 發佈於 閱讀時間約 4 分鐘

這篇會將統一整理一些 Laravel 常用函數的小知識。

Pluck

  1. 可以直接獲取需要的欄位值。
  2. 當它接在 query builder 上,會自動下 select 的指令。
  3. pluck 完以後,已經是 collect([]) 的結果,因此可以直接 ->all() 結果出來。

Collapse

  1. 可以將多維資料轉為一維資料。

toArray() 與 insert

由於 toArray() 是 recursive 的函數,因此可以搭配 insert 一次處理多筆的特性,可以節省掉很多 query 。

//舊的
$models->each(function ($model) { LogRecruitCardProcess::insert($model->toArray()); });
//新的
LogRecruitCardProcess::insert($models->toArray());

SQL 的效能瓶頸

與資料庫互動時,應時時注意取出資料過大時該怎麼辦,即使看似只是一個小地方。

舉例來說,與其先 SELECT 後再將符合條件的進行 UPDATE,不如先把符合條件的資料紀錄下來並一次 UPDATE。這樣如果撈出500筆資料,用前者的方式最多執行 1+500次,而後者則只需 1+1 次。

map() 與 fn

利用 map() 與 fn 直接處理符合的資料。

private function getData(int $idNo, Collection $dataFlow): array
{
return $dataFlow->filter(fn (Subprocess $process) => $process->idno == $idNo)
->map(fn (Subprocess $subprocess) => [
'id' => (string) $subprocess->id,
'name' => $subprocess->name,
])->toArray();
}

預設環境變數

在 Laravel中 ,設定預設環境變數的載入方法紀錄在 bootstrap/app.php 裡面。

$app->afterLoadingEnvironment(function () use ($app) {
// 載入不同環境設定
Dotenv\\Dotenv::createMutable($app->environmentPath(), $app->environmentFile() . '.' . env('APP_ENV'))->safeLoad();
// 載入主機環境設定
Dotenv\\Dotenv::createMutable('/opt')->safeLoad();
});

參考資料

  1. https://laravel.tw/docs/5.2/eloquent-collections
留言
avatar-img
留言分享你的想法!
avatar-img
林柏宇的沙龍
2會員
57內容數
test
林柏宇的沙龍的其他內容
2025/08/10
本文提供AWS雲端平臺的SEO建議,包含安全性、監控與分析、訂價和支援、遷移與創新、以及架構等面向。針對每個面向,提供關鍵字建議及優化策略。
Thumbnail
2025/08/10
本文提供AWS雲端平臺的SEO建議,包含安全性、監控與分析、訂價和支援、遷移與創新、以及架構等面向。針對每個面向,提供關鍵字建議及優化策略。
Thumbnail
2025/08/03
這篇文章整理了AWS Cloud Practitioner Essentials考試重點,涵蓋雲端運算部署模型、Amazon EC2執行個體類型與定價、全球基礎設施與可靠性、網路架構 (VPC、子網路、安全群組等)、儲存和資料庫服務等。文章深入淺出地解釋每個概念,並輔以生活化的例子方便理解。
Thumbnail
2025/08/03
這篇文章整理了AWS Cloud Practitioner Essentials考試重點,涵蓋雲端運算部署模型、Amazon EC2執行個體類型與定價、全球基礎設施與可靠性、網路架構 (VPC、子網路、安全群組等)、儲存和資料庫服務等。文章深入淺出地解釋每個概念,並輔以生活化的例子方便理解。
Thumbnail
2025/07/27
這篇文章提供關於Kubernetes集群管理的全面指南,涵蓋Job、儲存方案整合、程式語言存取、Pod安全、策略治理以及多集群應用程式部署等關鍵主題。文章深入淺出地解釋了每個章節的重點概念,並提供實用的建議和最佳實踐。
Thumbnail
2025/07/27
這篇文章提供關於Kubernetes集群管理的全面指南,涵蓋Job、儲存方案整合、程式語言存取、Pod安全、策略治理以及多集群應用程式部署等關鍵主題。文章深入淺出地解釋了每個章節的重點概念,並提供實用的建議和最佳實踐。
Thumbnail
看更多
你可能也想看
Thumbnail
常常被朋友問「哪裡買的?」嗎?透過蝦皮分潤計畫,把日常購物的分享多加一個步驟,就能轉換成現金回饋。門檻低、申請簡單,特別適合學生與上班族,讓零碎時間也能創造小確幸。
Thumbnail
常常被朋友問「哪裡買的?」嗎?透過蝦皮分潤計畫,把日常購物的分享多加一個步驟,就能轉換成現金回饋。門檻低、申請簡單,特別適合學生與上班族,讓零碎時間也能創造小確幸。
Thumbnail
在本章節中,我們探討了 PHP 中如何引用和管理套件。學習了如何使用 Composer 來安裝第三方套件,以及如何引用自定義模組。此外,我們還介紹了如何創建和使用自定義套件,並列舉了一些在 PHP 社群中常見且廣泛使用的套件和庫。通過掌握這些知識,開發者可以更有效地管理和利用各種資源。
Thumbnail
在本章節中,我們探討了 PHP 中如何引用和管理套件。學習了如何使用 Composer 來安裝第三方套件,以及如何引用自定義模組。此外,我們還介紹了如何創建和使用自定義套件,並列舉了一些在 PHP 社群中常見且廣泛使用的套件和庫。通過掌握這些知識,開發者可以更有效地管理和利用各種資源。
Thumbnail
在這一章中,我們探討了 PHP 中的函數,包括函數的基本結構、不同的函數定義方式(如函數聲明、函數表達式、箭頭函數和匿名函數)以及如何呼叫函數。我們還討論了函數的參數處理方式,包括單個參數、多個參數、預設參數值和剩餘參數。此外,我們還介紹了函數的返回值,包括返回單個值、返回物件和返回函數的情況。
Thumbnail
在這一章中,我們探討了 PHP 中的函數,包括函數的基本結構、不同的函數定義方式(如函數聲明、函數表達式、箭頭函數和匿名函數)以及如何呼叫函數。我們還討論了函數的參數處理方式,包括單個參數、多個參數、預設參數值和剩餘參數。此外,我們還介紹了函數的返回值,包括返回單個值、返回物件和返回函數的情況。
Thumbnail
在本節中,我們介紹了PHP的基本語法,包括如何在HTML中嵌入PHP代碼,PHP腳本的執行順序,以及多種註解方式。我們還學習了如何定義和使用變數,包括單個變數和多個變數的賦值方法。這些基礎知識將幫助你開始使用PHP進行Web開發。
Thumbnail
在本節中,我們介紹了PHP的基本語法,包括如何在HTML中嵌入PHP代碼,PHP腳本的執行順序,以及多種註解方式。我們還學習了如何定義和使用變數,包括單個變數和多個變數的賦值方法。這些基礎知識將幫助你開始使用PHP進行Web開發。
Thumbnail
介紹工作後幾個常見的小問題,包括寫 Log 的好習慣、本地印出錯誤或過程、PHPCS 工具、變數儲存於設定檔、避免魔術數字、程式碼靜態分析與動態分析。
Thumbnail
介紹工作後幾個常見的小問題,包括寫 Log 的好習慣、本地印出錯誤或過程、PHPCS 工具、變數儲存於設定檔、避免魔術數字、程式碼靜態分析與動態分析。
Thumbnail
你好,在下最近在學習開發web,學了html css js,也得出一些心得,由於網路上已有許多教學,所以我會著重在如何開發出to do List,以及解釋我寫的程式碼。相關的教學我會直接貼網址。如果我有什麼地方出錯,或者是可以寫得更好,歡迎在下方留言,討論。 首先先介紹我的開發環境: 我用了vs
Thumbnail
你好,在下最近在學習開發web,學了html css js,也得出一些心得,由於網路上已有許多教學,所以我會著重在如何開發出to do List,以及解釋我寫的程式碼。相關的教學我會直接貼網址。如果我有什麼地方出錯,或者是可以寫得更好,歡迎在下方留言,討論。 首先先介紹我的開發環境: 我用了vs
Thumbnail
利用文字紀錄,明確寫下自己的採購項目......
Thumbnail
利用文字紀錄,明確寫下自己的採購項目......
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News