Laravel 教學(如何建立並操作 Model 資料表)

更新 發佈閱讀 10 分鐘

Laravel 中,操作資料庫的核心是透過 Model 來進行的。Model 不僅負責與資料表進行溝通,它還提供了一個簡單而直觀的方式來進行資料庫的增、刪、改、查等操作。今天,將學習如何建立 Model,創建資料表,並且如何在路由中進行資料操作。

一、建立 Model

在 Laravel 中,建立 Model 可以使用 Artisan 命令。當你創建一個新的 Model 時,通常它對應的是資料表的單數型態,而資料表則是複數型態,命名的時候可能需要區分。

1. 使用 Artisan 創建 Model

首先,打開你的終端機,進入你的 Laravel 專案目錄,然後執行以下命令:

php artisan make:model News

這個命令會在 app/Models/ 目錄下創建一個新的 News Model。接下來,你可以開始撰寫這個 Model。

2. 編輯 Model

開啟 app/Models/News.php 檔案,並根據需要進行編輯。以下是創建 News Model 的範例:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class News extends Model
{
use HasFactory;

// 1. 指定資料表名稱,預設會使用單數型態並轉換成複數型態
protected $table = 'news';

// 2. 可以讓哪些欄位被批量賦值
protected $fillable = [
'title', // 標題欄位
'content', // 內容欄位
];
}

註解解析:

  • protected $table = 'news'; 這一行指定了 Model 對應的資料表名稱。如果資料表名稱和 Model 名稱不同,可以透過這個屬性來修改。
  • protected $fillable = ['title', 'content']; 這一行定義了哪些欄位可以進行批量賦值。這樣我們就可以通過 create 方法將資料直接插入資料庫。

二、建立資料表的遷移檔

在 Laravel 中,資料表結構是透過遷移來管理的。當你創建 Model 時,接下來需要創建一個遷移檔來定義資料表結構。使用以下命令來創建資料表的遷移檔:

php artisan make:migration create_news_table

這會在 database/migrations 目錄下創建一個遷移檔,然後你可以在該檔案中編寫資料表的結構。

1. 編輯遷移檔

打開剛剛創建的遷移檔,並編輯 up() 方法來定義 news 資料表的結構。以下是範例遷移檔案內容:

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('news', function (Blueprint $table) {
$table->id(); // 自動遞增的 id 欄位
$table->string('title')->comment('標題'); // 標題欄位
$table->text('content')->comment('內容'); // 內容欄位
$table->timestamps(); // 自動生成 created_at 和 updated_at 欄位
});
}

/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('news'); // 回滾時刪除資料表
}
};

註解解析:

  • $table->id(); 自動生成一個 id 欄位,通常作為主鍵。
  • $table->string('title'); 創建一個 title 欄位,類型為 string
  • $table->text('content'); 創建一個 content 欄位,類型為 text,用於存儲文章的內容。
  • $table->timestamps(); 創建 created_atupdated_at 欄位,這是 Laravel 自動提供的時間戳記欄位。

三、執行遷移

遷移檔編寫完成後,下一步就是執行遷移來創建資料表。在終端機中運行以下命令:

php artisan migrate

執行後,news 資料表會被創建在資料庫中。

四、在路由中操作資料

現在,我們已經創建了 Model 和資料表,接下來讓我們在 routes/web.php 中寫一些程式來操作資料。

1. 新增資料

routes/web.php 中,我們可以新增一個路由來創建資料。在這個路由中,我們將使用 News::create() 方法來新增一筆資料:

<?php

use Illuminate\Support\Facades\Route;
use App\Models\News;

/*
|---------------------------------------------------------------------------
| Web Routes
|---------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider and all of them will
| be assigned to the "web" middleware group. Make something great!
|
*/

Route::get('/', function () {
return view('welcome');
});

// 新增一條新聞資料
Route::get('/news', function () {
News::create([
'title' => 'London to Paris',
'content' => 'A quick flight from London to Paris with comfortable seating.',
]);
dd('News item created!');
});

註解解析:

  • News::create([...]) 這行程式會將資料插入到 news 資料表中。我們在這裡指定了 titlecontent 欄位的值。
  • dd('News item created!')Laravel 中的 Dump and Die 函數,用來輸出訊息並結束程式,幫助我們確保資料已經成功新增。

五、檢查資料庫

當你訪問 /news 路徑時,資料會被插入到資料庫中的 news 資料表。你可以使用資料庫管理工具(例如 PhpMyAdmin 或 HeidiSQL)來檢查資料表,確保資料已經成功新增。

六、結論

通過本文,我們學習了如何使用 Laravel 的 Model 和遷移來管理資料庫。具體流程包括:

  1. 創建 Model:我們通過 Artisan 命令創建了 News Model,並設置了資料表名稱及可批量賦值的欄位。
  2. 創建資料表:使用遷移來定義資料表結構並執行遷移創建資料表。
  3. 在路由中新增資料:我們在 web.php 中創建了路由,並通過 create 方法新增了一條新聞資料。

這只是 Laravel 中資料庫操作的基礎,隨著開發進程,你會發現更多高效且強大的功能,讓你的開發更具彈性與擴展性。接下來會介紹在 Laravel 中使用 MVC 架構來處理資料和前端互動。


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

 

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

 

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


留言
avatar-img
阿棋的沙龍
3會員
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
債券投資,不只是高資產族群的遊戲 在傳統的投資觀念中,海外債券(Overseas Bonds)常被貼上「高資產族群專屬」的標籤。過去動輒 1 萬甚至 10 萬美元的最低申購門檻,讓許多想尋求穩定配息的小資族望而卻步。 然而,在股市波動劇烈的環境下,尋求穩定的美元現金流與被動收入成為許多投資人
Thumbnail
債券投資,不只是高資產族群的遊戲 在傳統的投資觀念中,海外債券(Overseas Bonds)常被貼上「高資產族群專屬」的標籤。過去動輒 1 萬甚至 10 萬美元的最低申購門檻,讓許多想尋求穩定配息的小資族望而卻步。 然而,在股市波動劇烈的環境下,尋求穩定的美元現金流與被動收入成為許多投資人
Thumbnail
透過川普的近期債券交易揭露,探討債券作為資產配置中「穩定磐石」的重要性。文章分析降息對債券的潛在影響,以及股神巴菲特的操作策略。並介紹玉山證券「小額債」平臺,如何讓小資族也能低門檻參與海外債券市場,實現「低門檻、低波動、固定收益」的務實投資方式。
Thumbnail
透過川普的近期債券交易揭露,探討債券作為資產配置中「穩定磐石」的重要性。文章分析降息對債券的潛在影響,以及股神巴菲特的操作策略。並介紹玉山證券「小額債」平臺,如何讓小資族也能低門檻參與海外債券市場,實現「低門檻、低波動、固定收益」的務實投資方式。
Thumbnail
解析「債券」如何成為資產配置中的穩定錨,提供低風險高回報的投資選項。 藉由玉山證券的低門檻債券服務,投資者可輕鬆入手,平衡風險並穩定財務。
Thumbnail
解析「債券」如何成為資產配置中的穩定錨,提供低風險高回報的投資選項。 藉由玉山證券的低門檻債券服務,投資者可輕鬆入手,平衡風險並穩定財務。
Thumbnail
相較於波動較大的股票,債券能提供固定現金流,而玉山證券推出的小額債,更以1000 美元的低門檻,讓學生與新手也能參與全球優質企業債投資。玉山E-Trader平台即時報價、條件式篩選與清楚的交易流程等特色,大幅降低投資難度,對於希望分散風險、建立穩定現金流的人來說,玉山小額債是一個值得嘗試的理財起點。
Thumbnail
相較於波動較大的股票,債券能提供固定現金流,而玉山證券推出的小額債,更以1000 美元的低門檻,讓學生與新手也能參與全球優質企業債投資。玉山E-Trader平台即時報價、條件式篩選與清楚的交易流程等特色,大幅降低投資難度,對於希望分散風險、建立穩定現金流的人來說,玉山小額債是一個值得嘗試的理財起點。
Thumbnail
在 Laravel 開發 API 時,直接在 Controller 內進行資料加工可能會讓程式碼變得雜亂且難以維護。因此,Laravel 提供 Resource (資源轉換器) 來解決這個問題,讓我們可以統一管理 API 的輸出格式,將模型model或模型集合collection轉換為適合 API
Thumbnail
在 Laravel 開發 API 時,直接在 Controller 內進行資料加工可能會讓程式碼變得雜亂且難以維護。因此,Laravel 提供 Resource (資源轉換器) 來解決這個問題,讓我們可以統一管理 API 的輸出格式,將模型model或模型集合collection轉換為適合 API
Thumbnail
※ 建立一個管理者的資料夾,負責建立不同的管理 — manager: ※ 在manager資料夾中,建立modelManager.ts: ※ 設定資料庫模型的管理: 匯入模組: import { IProductModel, ProductModel } from "@/model/prod
Thumbnail
※ 建立一個管理者的資料夾,負責建立不同的管理 — manager: ※ 在manager資料夾中,建立modelManager.ts: ※ 設定資料庫模型的管理: 匯入模組: import { IProductModel, ProductModel } from "@/model/prod
Thumbnail
※ Schema Design 小測驗 ● 測驗一:電商平台是後端開發最基本的例子 幫電商平台設計一個SQL Database Schema,需要保存商品資料、顧客資料、訂單資料… 輔助設計Schema的工具: https://drawsql.app 優點: 網頁版,方便使用。 功能
Thumbnail
※ Schema Design 小測驗 ● 測驗一:電商平台是後端開發最基本的例子 幫電商平台設計一個SQL Database Schema,需要保存商品資料、顧客資料、訂單資料… 輔助設計Schema的工具: https://drawsql.app 優點: 網頁版,方便使用。 功能
Thumbnail
種類 SQL指令分三大部分: 資料定義語言(Data Definition Language,DDL):建立資料表、索引和檢視表等,和定義資料表的欄位。 資料操作語言(Data Manipulation Language,DML):資料表紀錄查詢、插入、刪除和更新指令。 資料控制語言(Dat
Thumbnail
種類 SQL指令分三大部分: 資料定義語言(Data Definition Language,DDL):建立資料表、索引和檢視表等,和定義資料表的欄位。 資料操作語言(Data Manipulation Language,DML):資料表紀錄查詢、插入、刪除和更新指令。 資料控制語言(Dat
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的MVC架構中,視圖(View)是呈現資料給使用者的關鍵部分。本篇深入探討了視圖的基本概念、建立與管理、與資料的互動方式,以及Blade模板引擎的應用。Blade提供了一套強大的工具,使動態視圖建立更為高效。
Thumbnail
在Laravel的MVC架構中,視圖(View)是呈現資料給使用者的關鍵部分。本篇深入探討了視圖的基本概念、建立與管理、與資料的互動方式,以及Blade模板引擎的應用。Blade提供了一套強大的工具,使動態視圖建立更為高效。
Thumbnail
本篇深入探討了Model的基本定義、其Controller的關係,以及如何在Controller中使用Model進行CRUD操作。強調了Model的關聯方法,如hasMany,並透過範例程式碼展示了其實際應用。為初學者提供了一個清晰的Laravel入門路徑,同時也為有經驗的開發者提供了實用的參考。
Thumbnail
本篇深入探討了Model的基本定義、其Controller的關係,以及如何在Controller中使用Model進行CRUD操作。強調了Model的關聯方法,如hasMany,並透過範例程式碼展示了其實際應用。為初學者提供了一個清晰的Laravel入門路徑,同時也為有經驗的開發者提供了實用的參考。
Thumbnail
Laravel的Model是資料和邏輯的核心連接,簡化資料庫操作。本指南著重於Model的基本屬性、方法和Eloquent ORM的使用。我們詳細探討了hasMany、hasOne和belongsTo這些關聯,它們基於外鍵確定資料間的關係。透過本文,您將深入了解如何有效地在Laravel中使用Mod
Thumbnail
Laravel的Model是資料和邏輯的核心連接,簡化資料庫操作。本指南著重於Model的基本屬性、方法和Eloquent ORM的使用。我們詳細探討了hasMany、hasOne和belongsTo這些關聯,它們基於外鍵確定資料間的關係。透過本文,您將深入了解如何有效地在Laravel中使用Mod
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News