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

更新於 2024/12/13閱讀時間約 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
0會員
18內容數
有軟體開發相關文章。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
阿棋的沙龍 的其他內容
在進行 Laravel 開發時,資料庫管理是開發過程中的重要環節,而 Laravel 的遷移(Migrations)提供了一個簡單而強大的方法來創建、修改和管理資料庫結構。本文將引導如何使用 Laravel 的資料庫遷移功能,並透過範例教學,幫助你掌握如何創建資料表、修改欄位、處理資料表關聯等操作。
今天,我們將簡單介紹 Git 和 GitHub,並深入了解如何使用 Git 解決衝突。此外,還會介紹常見的 API 方法 和 Laravel 中的類語法,讓你更好地理解程式碼的運作方式。
在這篇文章中,來學習如何安裝 XAMPP、Composer 和 Laravel,並深入探討如何在 Laravel 專案中使用 PHP 進行開發。這篇將會包括一些基本的 PHP 語法、常見的操作(如迴圈、條件式、陣列處理等)以及如何在 Laravel 中進行一些常見的任務。
在進行 Laravel 開發時,資料庫管理是開發過程中的重要環節,而 Laravel 的遷移(Migrations)提供了一個簡單而強大的方法來創建、修改和管理資料庫結構。本文將引導如何使用 Laravel 的資料庫遷移功能,並透過範例教學,幫助你掌握如何創建資料表、修改欄位、處理資料表關聯等操作。
今天,我們將簡單介紹 Git 和 GitHub,並深入了解如何使用 Git 解決衝突。此外,還會介紹常見的 API 方法 和 Laravel 中的類語法,讓你更好地理解程式碼的運作方式。
在這篇文章中,來學習如何安裝 XAMPP、Composer 和 Laravel,並深入探討如何在 Laravel 專案中使用 PHP 進行開發。這篇將會包括一些基本的 PHP 語法、常見的操作(如迴圈、條件式、陣列處理等)以及如何在 Laravel 中進行一些常見的任務。
你可能也想看
Google News 追蹤
Thumbnail
本文探討了複利效應的重要性,並藉由巴菲特的投資理念,說明如何選擇穩定產生正報酬的資產及長期持有的核心理念。透過定期定額的投資方式,不僅能減少情緒影響,還能持續參與全球股市的發展。此外,文中介紹了使用國泰 Cube App 的便利性及低手續費,幫助投資者簡化投資流程,達成長期穩定增長的財務目標。
Thumbnail
CSS 盒模型是理解和設計網頁佈局的核心概念。它包括元素的內容、填充、邊框和外邊距。
Thumbnail
CodeIgniter 3 和 Laravel 是兩種不同的 PHP 框架,各有其特點和適用場景。CodeIgniter 3 是一個輕量級框架,Laravel 是一個功能強大的現代 PHP 框架,同樣都有Models的它們有什麼樣的差別呢?
Thumbnail
這一章節旨在介紹 PHP 中的物件導向編程(OOP)概念。通過詳細講解類別、建構子、訪問修飾符(公開、私有、受保護)、繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、委派、Lambda 表達式、泛型和反射等概念,使讀者能夠理解和應用這些 OOP 技術來編寫更具結構性和可維護性的 PHP 代碼。
Thumbnail
※ 視圖模板 視圖模板(View Templates) 是在 MVC 架構中負責展示數據的 HTML 文件,包含模板語法,用於在渲染時插入實際數據。它們的主要目的是分離數據與展示邏輯,讓代碼更加模塊化和易於維護。 視圖模板設計和使用的核心理念,就是「重複的事情不要重複做、效益最大化、有效利用資源
Thumbnail
你好,在下最近在學習開發web,學了html css js,也得出一些心得,由於網路上已有許多教學,所以我會著重在如何開發出to do List,以及解釋我寫的程式碼。相關的教學我會直接貼網址。如果我有什麼地方出錯,或者是可以寫得更好,歡迎在下方留言,討論。 首先先介紹我的開發環境: 我用了vs
MVVM(Model View ViewModel),特點是View跟ViewModel之間做資料綁定。 Model 負責儲存應用程式的資料。 View 負責顯示資料。 ViewModel 負責處理View和Model之間的狀態關係。
Thumbnail
第一份正職工作 在iot公司擔任後端工程師,一上工就使用先前沒用過的php/laravel,也馬上負責公司產品的架構規劃,先前資料庫只有簡單記載使用者跟使用者的一些設定,很多地方有資料不一致的問題,產品內容還有很多實體的關係沒有被定義進資料庫都是這次改版我要做的事情。 改版納入公司、機器
Thumbnail
※ 基本操作:SQL 語法,SELECT, WHERE, CREATE, UPDATE, DELETE。 SELECT:從資料庫中或資料表中指定要選擇的欄位中取得資料,稱之為查詢 (query)。 ※ 語法:要由兩部分構成,第一部分是要 "拿什麼" 資料 (若有多項用逗號隔開);第二部分則為
Migration在 Laravel 中是一種用來管理資料庫結構變更的機制。它的主要目的是使開發者能夠在應用程序的不同環境中保持資料庫結構的一致性,並輕鬆地進行結構變更
本節課程將介紹 MVVM 架構的概念和優點。MVVM 是 Model-View-ViewModel 的簡稱,是一種分離資料、介面和邏輯的設計模式。透過 MVVM 架構,您可以提高程式碼的可讀性、可測試性和可維護性。
Thumbnail
本文探討了複利效應的重要性,並藉由巴菲特的投資理念,說明如何選擇穩定產生正報酬的資產及長期持有的核心理念。透過定期定額的投資方式,不僅能減少情緒影響,還能持續參與全球股市的發展。此外,文中介紹了使用國泰 Cube App 的便利性及低手續費,幫助投資者簡化投資流程,達成長期穩定增長的財務目標。
Thumbnail
CSS 盒模型是理解和設計網頁佈局的核心概念。它包括元素的內容、填充、邊框和外邊距。
Thumbnail
CodeIgniter 3 和 Laravel 是兩種不同的 PHP 框架,各有其特點和適用場景。CodeIgniter 3 是一個輕量級框架,Laravel 是一個功能強大的現代 PHP 框架,同樣都有Models的它們有什麼樣的差別呢?
Thumbnail
這一章節旨在介紹 PHP 中的物件導向編程(OOP)概念。通過詳細講解類別、建構子、訪問修飾符(公開、私有、受保護)、繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、委派、Lambda 表達式、泛型和反射等概念,使讀者能夠理解和應用這些 OOP 技術來編寫更具結構性和可維護性的 PHP 代碼。
Thumbnail
※ 視圖模板 視圖模板(View Templates) 是在 MVC 架構中負責展示數據的 HTML 文件,包含模板語法,用於在渲染時插入實際數據。它們的主要目的是分離數據與展示邏輯,讓代碼更加模塊化和易於維護。 視圖模板設計和使用的核心理念,就是「重複的事情不要重複做、效益最大化、有效利用資源
Thumbnail
你好,在下最近在學習開發web,學了html css js,也得出一些心得,由於網路上已有許多教學,所以我會著重在如何開發出to do List,以及解釋我寫的程式碼。相關的教學我會直接貼網址。如果我有什麼地方出錯,或者是可以寫得更好,歡迎在下方留言,討論。 首先先介紹我的開發環境: 我用了vs
MVVM(Model View ViewModel),特點是View跟ViewModel之間做資料綁定。 Model 負責儲存應用程式的資料。 View 負責顯示資料。 ViewModel 負責處理View和Model之間的狀態關係。
Thumbnail
第一份正職工作 在iot公司擔任後端工程師,一上工就使用先前沒用過的php/laravel,也馬上負責公司產品的架構規劃,先前資料庫只有簡單記載使用者跟使用者的一些設定,很多地方有資料不一致的問題,產品內容還有很多實體的關係沒有被定義進資料庫都是這次改版我要做的事情。 改版納入公司、機器
Thumbnail
※ 基本操作:SQL 語法,SELECT, WHERE, CREATE, UPDATE, DELETE。 SELECT:從資料庫中或資料表中指定要選擇的欄位中取得資料,稱之為查詢 (query)。 ※ 語法:要由兩部分構成,第一部分是要 "拿什麼" 資料 (若有多項用逗號隔開);第二部分則為
Migration在 Laravel 中是一種用來管理資料庫結構變更的機制。它的主要目的是使開發者能夠在應用程序的不同環境中保持資料庫結構的一致性,並輕鬆地進行結構變更
本節課程將介紹 MVVM 架構的概念和優點。MVVM 是 Model-View-ViewModel 的簡稱,是一種分離資料、介面和邏輯的設計模式。透過 MVVM 架構,您可以提高程式碼的可讀性、可測試性和可維護性。