Laravel(時間參數與分頁功能)

更新 發佈閱讀 8 分鐘

在開發 Web 應用時,管理大量資料通常需要處理分頁和格式化顯示的需求。本文將介紹如何在 Laravel 中實現 時間格式轉換 以及 分頁功能,並用實際案例來展示如何將這些功能整合到你的應用程式中。

1. 轉換時間格式(castsformat

在模型中轉換時間格式

MovieList 模型中,我們需要將資料庫中的 publish_date 欄位轉換為適合顯示的時間格式。這可以透過 Laravel 的 Cast 功能來實現。

首先,打開你的 MovieList 模型檔案,並在 $casts 屬性中加入 publish_date 欄位的轉換設定。這樣,你就可以將 publish_date 自動轉換為 datetime 類型,並在後續操作中方便地格式化。

protected $casts = [
'movie_types_id' => 'int',
'film_length' => 'int',
'publish_date' => 'datetime', // 將 publish_date 轉換為 datetime 類型
'price' => 'int'
];

這段程式碼確保了 publish_date 欄位的資料會被自動轉換為 Carbon 類型,這是 Laravel 預設的日期時間處理工具。接著,我們可以在展示時使用 format 方法來轉換為我們所需的格式。

$movie->publish_date->format('Y/m/d');  // 格式化為 年/月/日

轉換後的格式化範例

在我們的應用程式中,通常會將日期格式化為像是 YYYY/MM/DD 的形式。使用 Carbon 類型的方法,我們可以輕鬆地達成這個目標:

$movie->publish_date?->format('Y/m/d');  // 使用問號確保當時間為 null 時不會報錯

2. 使用分頁來顯示大量資料

分頁是處理大量資料的一個常見需求,Laravel 提供了 paginate 方法來輕鬆實現。這不僅有助於提高性能,還能提升用戶體驗,讓頁面不會因為載入大量資料而變得緩慢。

在控制器中使用 paginate

MovieControllerindex 方法中,我們使用 paginate(5) 來每頁顯示 5 條電影資料。這樣能確保用戶在瀏覽電影資料時,不會一次性加載過多的資訊,從而保持頁面的流暢性。

public function index()
{
// 使用 paginate 來處理分頁,這裡每頁顯示 5 條資料
$data = MovieList::paginate(5);

return Inertia::render('Backend/Movie/MovieIndex', [
// 當使用 paginate 時,透過 through 進行資料轉換
'movie' => $data->through(function ($item) {
return [
'id' => $item->id,
'name' => $item->name,
'film_length' => $item->film_length,
'price' => $item->price,
'publish_date' => $item->publish_date?->format('Y/m/d'), // 格式化 publish_date
];
}),
]);
}

在這段程式碼中,我們首先使用 paginate(5) 來獲取每頁 5 條資料,並且利用 through() 方法對每一條資料進行格式化,特別是 publish_date 欄位,這裡我們格式化為 YYYY/MM/DD

頁面顯示分頁導航

接著,我們需要在前端頁面顯示分頁導航,讓用戶能夠切換到不同的頁面。在 MovieIndex 視圖中,我們使用 movie.links 屬性來渲染分頁連結。

<ul class="flex gap-4 mt-4">
<li v-for="(page, index) in movie.links" :key="index">
<Link
:href="page.url ?? ''"
class="p-2"
:class="{ 'bg-blue-500 text-white': page.active, 'opacity-50 pointer-events-none': !page.url }"
>
<span v-if="page.label.includes('Previous')">前一頁</span>
<span v-else-if="page.label.includes('Next')">後一頁</span>
<span v-else>{{ page.label }}</span>
</Link>
</li>
</ul>

在這段程式中,我們迭代 movie.links,這是 Laravel 提供的分頁連結物件,它包含了前一頁、下一頁以及每頁的頁碼。根據這些資料,我們渲染出相應的按鈕,並且使用 :class 來動態修改按鈕的樣式,例如當按鈕是當前頁時,會加上 bg-blue-500 text-white 這個樣式。

3. 小結

如何提高應用的性能與可讀性

  • 時間格式轉換:透過 $casts 屬性,我們可以輕鬆將時間資料庫欄位轉換為適當的格式,並使用 format 方法來顯示用戶友好的時間格式。
  • 分頁功能:使用 paginate 方法來簡單地分頁顯示資料,配合 through() 方法進行資料格式化,使得頁面在顯示大量資料時更加高效且具有可讀性。

最後

在這篇文章中,我們展示了如何使用 Laravel 的時間格式轉換功能分頁功能 來提升應用的效能和可讀性。這不僅能幫助你管理大量資料,還能提供更好的用戶體驗。接下來會介紹在 Laravel 中設計登入功能。


對於這類的撰寫方式習慣嗎?歡迎多多進行良性的知識交流喔!目前是在學習階段,大家有不同看法的話歡迎進行良性的知識交流!

 

大家可以考慮多多分享文章和考慮訂閱沙龍方案或贊助等喔!不過請注意不要違反著作權等行為。當然決定權都在於您,不會干涉您的任何決定。

 

提醒,文章僅供正當的知識參考,文章不負任何責任。



留言
avatar-img
留言分享你的想法!
avatar-img
阿棋的沙龍
2會員
34內容數
有軟體開發相關文章。
阿棋的沙龍的其他內容
2025/02/19
在現代的Web應用中,發送即時郵件通知是一項常見的需求。無論是訂單狀態更新、賬單付款通知,還是帳號活動警報,這些通知都能讓用戶即時了解重要信息,並提升使用者體驗。今天,將介紹如何在Laravel中實現一個簡單的郵件通知系統,並演示如何使用通知來通知使用者。
2025/02/19
在現代的Web應用中,發送即時郵件通知是一項常見的需求。無論是訂單狀態更新、賬單付款通知,還是帳號活動警報,這些通知都能讓用戶即時了解重要信息,並提升使用者體驗。今天,將介紹如何在Laravel中實現一個簡單的郵件通知系統,並演示如何使用通知來通知使用者。
2025/02/12
網站的安全性對於保護用戶資料和防止惡意攻擊至關重要。對於許多應用來說,實現Email驗證和兩步驟驗證(2FA)是增強用戶安全的一種有效方式。今天將探索如何在Laravel框架中實現這兩項功能,並結合Google Gmail的應用程式密碼,從而保障你網站的用戶帳號安全。
2025/02/12
網站的安全性對於保護用戶資料和防止惡意攻擊至關重要。對於許多應用來說,實現Email驗證和兩步驟驗證(2FA)是增強用戶安全的一種有效方式。今天將探索如何在Laravel框架中實現這兩項功能,並結合Google Gmail的應用程式密碼,從而保障你網站的用戶帳號安全。
2025/02/05
在現代網絡安全環境中,網站的安全性至關重要。為了確保你的網站免受各種攻擊,進行網站弱點掃描是不可或缺的一步。今天,將介紹一個強大且免費的網站安全掃描工具——OWASP ZAP(Zed Attack Proxy),它不僅功能強大,且易於使用,適合各種用戶,無論你是初學者還是資深的安全專家。
2025/02/05
在現代網絡安全環境中,網站的安全性至關重要。為了確保你的網站免受各種攻擊,進行網站弱點掃描是不可或缺的一步。今天,將介紹一個強大且免費的網站安全掃描工具——OWASP ZAP(Zed Attack Proxy),它不僅功能強大,且易於使用,適合各種用戶,無論你是初學者還是資深的安全專家。
看更多
你可能也想看
Thumbnail
還在煩惱平凡日常該如何增添一點小驚喜嗎?全家便利商店這次聯手超萌的馬來貘,推出黑白配色的馬來貘雪糕,不僅外觀吸睛,層次豐富的雙層口味更是讓人一口接一口!本文將帶你探索馬來貘雪糕的多種創意吃法,從簡單的豆漿燕麥碗、藍莓果昔,到大人系的奇亞籽布丁下午茶,讓可愛的馬來貘陪你度過每一餐,增添生活中的小確幸!
Thumbnail
還在煩惱平凡日常該如何增添一點小驚喜嗎?全家便利商店這次聯手超萌的馬來貘,推出黑白配色的馬來貘雪糕,不僅外觀吸睛,層次豐富的雙層口味更是讓人一口接一口!本文將帶你探索馬來貘雪糕的多種創意吃法,從簡單的豆漿燕麥碗、藍莓果昔,到大人系的奇亞籽布丁下午茶,讓可愛的馬來貘陪你度過每一餐,增添生活中的小確幸!
Thumbnail
這篇文章記錄在 Linux server 上使用 Laravel schedule 排程任務的過程,包含 Laravel schedule 的定義、以及設定 Linux crontab 的步驟,並說明其中需要注意的權限問題。
Thumbnail
這篇文章記錄在 Linux server 上使用 Laravel schedule 排程任務的過程,包含 Laravel schedule 的定義、以及設定 Linux crontab 的步驟,並說明其中需要注意的權限問題。
Thumbnail
在 Laravel 開發 API 時,直接在 Controller 內進行資料加工可能會讓程式碼變得雜亂且難以維護。因此,Laravel 提供 Resource (資源轉換器) 來解決這個問題,讓我們可以統一管理 API 的輸出格式,將模型model或模型集合collection轉換為適合 API
Thumbnail
在 Laravel 開發 API 時,直接在 Controller 內進行資料加工可能會讓程式碼變得雜亂且難以維護。因此,Laravel 提供 Resource (資源轉換器) 來解決這個問題,讓我們可以統一管理 API 的輸出格式,將模型model或模型集合collection轉換為適合 API
Thumbnail
在本節中,我們介紹了PHP的基本語法,包括如何在HTML中嵌入PHP代碼,PHP腳本的執行順序,以及多種註解方式。我們還學習了如何定義和使用變數,包括單個變數和多個變數的賦值方法。這些基礎知識將幫助你開始使用PHP進行Web開發。
Thumbnail
在本節中,我們介紹了PHP的基本語法,包括如何在HTML中嵌入PHP代碼,PHP腳本的執行順序,以及多種註解方式。我們還學習了如何定義和使用變數,包括單個變數和多個變數的賦值方法。這些基礎知識將幫助你開始使用PHP進行Web開發。
Thumbnail
放鬆的週末,我與幾位同事決定提升我們的後端開發技巧,選擇了「日期範圍生成器」作為我們的小型實作。作為團隊中較有經驗的PHP工程師,我引領著團隊從基礎程式碼的撰寫開始,進而深入到物件導向的結構調整,最後提高程式可擴充性的挑戰。雖然過程中遇到不少困難,但我們通過不斷的討論和優化,最終成功克服了所有挑戰。
Thumbnail
放鬆的週末,我與幾位同事決定提升我們的後端開發技巧,選擇了「日期範圍生成器」作為我們的小型實作。作為團隊中較有經驗的PHP工程師,我引領著團隊從基礎程式碼的撰寫開始,進而深入到物件導向的結構調整,最後提高程式可擴充性的挑戰。雖然過程中遇到不少困難,但我們通過不斷的討論和優化,最終成功克服了所有挑戰。
Thumbnail
Laravel是一個以MVC(參考:[設計模式]MVC)為架構的PHP Web框架。Laravel支援使用者身份驗證和授權,提供模組化套件系統。Laravel使用Blade模板系統將PHP程式碼與HTML網頁分離。 安裝環境 下載安裝composer https://getcomposer.o
Thumbnail
Laravel是一個以MVC(參考:[設計模式]MVC)為架構的PHP Web框架。Laravel支援使用者身份驗證和授權,提供模組化套件系統。Laravel使用Blade模板系統將PHP程式碼與HTML網頁分離。 安裝環境 下載安裝composer https://getcomposer.o
Thumbnail
在公司專案裡,除了使用Laravel 提供的輔助函數外,我們還可以透過建構屬於自己的Helper function 可以方便地執行諸如處理陣列、文件路徑、字符串和路由等操作,來協助我們更方便處理重複的程式碼。
Thumbnail
在公司專案裡,除了使用Laravel 提供的輔助函數外,我們還可以透過建構屬於自己的Helper function 可以方便地執行諸如處理陣列、文件路徑、字符串和路由等操作,來協助我們更方便處理重複的程式碼。
Thumbnail
學習框架前第一步,先理解框架的生命週期 學習完PHP程式基礎後,就會開始進入框架的學習,為了能理解Laravel框架是如何運作的,就必須清楚框架的生命週期,這也是面試時的必考題哦。
Thumbnail
學習框架前第一步,先理解框架的生命週期 學習完PHP程式基礎後,就會開始進入框架的學習,為了能理解Laravel框架是如何運作的,就必須清楚框架的生命週期,這也是面試時的必考題哦。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News