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
留言分享你的想法!
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
在 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入門路徑,同時也為有經驗的開發者提供了實用的參考。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News