Laravel初學者指南:深入探索Model的使用與應用

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

Model的基本屬性與方法

  • Model的角色:在Laravel中,Model代表資料庫中的表格,並使用Eloquent ORM來操作這些表格。
namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class User extends Model {}

常用屬性

  • `$fillable`:定義哪些欄位可以被批量賦值。
protected $fillable = ['name', 'email', 'password'];
  • `$guarded`:定義哪些欄位不可以被批量賦值。
protected $guarded = ['id'];
  • `$hidden`:在模型數組或JSON顯示中隱藏某些屬性。
protected $hidden = ['password', 'remember_token'];

常用方法

  • `create()`:建立新的資料庫紀錄。
User::create(['name' => 'James', 'email' => 'james@example.com']);
  • `find()`:根據主鍵查找紀錄。
$user = User::find(1);
  • `where()`:基於給定條件查找紀錄。
$activeUsers = User::where('status', 'active')->get();


Model關聯:hasMany、hasOne、belongsTo

  • hasMany:一對多的關聯。例如,一個`User`模型可能有多個`Post`。
public function posts() {

return $this->hasMany(Post::class);

}


  • hasOne:一對一的關聯。例如,一個`User`模型可能只有一個`Profile`。
public function profile() {

return $this->hasOne(Profile::class);

}

  • belongsTo:多對一的關聯。例如,多個`Post`可能屬於同一個`User`。
public function user() {

return $this->belongsTo(User::class);

}
  • 關聯的依據:上述這些方法,在Laravel中,這些關聯是基於資料庫中的外鍵來建立的。例如,posts表格可能有一個user_id欄位,這個欄位指向users表格的id欄位,從而建立UserPost之間的關聯。當使用Eloquent的關聯方法時,Laravel會自動處理這些外鍵的查詢和更新。


如何呼叫Model

  • 導入Model:在控制器或其他PHP文件中,使用`use`語句來導入Model。例如,`use App\Models\User;`。
  • 操作資料庫表格:通過Model名稱來操作對應的資料庫表格。例如,`User::all()`來獲取所有用戶。
  • 動態屬性:Laravel允許您使用動態屬性訪問資料庫表格的欄位。例如,`$user->name`可以獲取用戶的名稱。
  • 使用查詢建構器:Model提供了查詢建構器,使得資料庫操作更加直觀。例如,`User::where('account_status', 'active')->get();`。


相關的Model方法

  • `save()`:保存模型的新實例到資料庫。
$user = new User;

$user->name = 'James';

$user->save();


  • `delete()`:從資料庫中刪除模型。
  $user = User::find(1);

$user->delete();


  • `update()`:更新資料庫中的模型。
$user = User::find(1);

$user->name = 'James Lee';

$user->update();


  • `fresh()`:從資料庫重新檢索模型。
$user = User::find(1);

$freshUser = $user->fresh();
這是一系列以軟體開發為主題的輕鬆分享,內容涵蓋了技術選擇、開發經驗、實戰應用等多方面的議題。無論是如何在眾多框架中做出選擇,還是如何應對技術轉移的挑戰,這裡有幽默、有趣的對話風格,將複雜的技術問題轉化為易懂的故事。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
本文開始前,對於已經熟悉Laravel框架的您來說,這篇文章可能涵蓋了一些您已知的基本概念。然而,對於那些剛踏入Laravel世界的初學者,這篇指南將為您提供一個基礎概念,幫助您更好地理解這個強大的框架。 簡介 Laravel是當今最受歡迎的PHP框架之一,它使用MVC(Model-View
本文開始前,對於已經熟悉Laravel框架的您來說,這篇文章可能涵蓋了一些您已知的基本概念。然而,對於那些剛踏入Laravel世界的初學者,這篇指南將為您提供一個基礎概念,幫助您更好地理解這個強大的框架。 簡介 Laravel是當今最受歡迎的PHP框架之一,它使用MVC(Model-View
你可能也想看
Google News 追蹤
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
在本篇文章中,我們將深入探討如何在 Laravel 中建立關聯資料、使用 Eloquent ORM 操作資料庫,並將資料傳遞到前端視圖。這篇文章將涵蓋從資料庫遷移、Seeder、關聯模型的建立,到資料傳遞的完整流程,並介紹如何在前端展示資料。
在這篇文章中,我們將介紹如何使用 Laravel 的 MVC(模型-視圖-控制器)架構來處理資料的創建、更新、刪除操作,並展示如何使用外鍵連接其他資料表。我們將從前端發送請求到後端,並演示如何在 Controller 中處理這些請求來操作資料。
在 Laravel 框架中,MVC(模型-視圖-控制器)架構是一個常見的設計模式,能有效地幫助我們組織程式碼,將應用的資料邏輯、業務邏輯和視圖展示分開。本文將介紹如何使用 Laravel 的 MVC 架構來創建、讀取、更新和刪除資料(即 CRUD 操作),並將資料顯示到前端頁面上。
在 Laravel 中,操作資料庫的核心是透過 Model 來進行的。Model 不僅負責與資料表進行溝通,它還提供了一個簡單而直觀的方式來進行資料庫的增、刪、改、查等操作。今天,將學習如何建立 Model,創建資料表,並且如何在路由中進行資料操作。
Thumbnail
這一章節旨在介紹 PHP 中的物件導向編程(OOP)概念。通過詳細講解類別、建構子、訪問修飾符(公開、私有、受保護)、繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、委派、Lambda 表達式、泛型和反射等概念,使讀者能夠理解和應用這些 OOP 技術來編寫更具結構性和可維護性的 PHP 代碼。
Thumbnail
有的時候,會希望在物件導向中對原生的Class新增功能的時候,大多我們都會寫一個新的class並繼承。 但是其實Laravel提供了一個不同的方式,讓我們可以在常用的Class上,直接新增想要的function,那就是macro。
Thumbnail
有趣的是,Model 其實沒什麼嚴格的定義,所以每個人對 Model 的解讀也不盡相同,有人覺得資料怎麼儲存屬於 Model 的一部份 (受 ORM 工具的影響),有人覺得工作流程 (workflow) 是 Model 的一部份,我個人也有自己的想法,而且隨專案的規模和特性,也不是總是一樣的。
Thumbnail
※ 基本操作:SQL 語法,SELECT, WHERE, CREATE, UPDATE, DELETE。 SELECT:從資料庫中或資料表中指定要選擇的欄位中取得資料,稱之為查詢 (query)。 ※ 語法:要由兩部分構成,第一部分是要 "拿什麼" 資料 (若有多項用逗號隔開);第二部分則為
Migration在 Laravel 中是一種用來管理資料庫結構變更的機制。它的主要目的是使開發者能夠在應用程序的不同環境中保持資料庫結構的一致性,並輕鬆地進行結構變更
出現這個錯誤時,如何解決: Illuminate\Database\Eloquent\MassAssignmentException Add [name] to fillable property to allow mass assignment on [App\Models\XXXX]
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
在本篇文章中,我們將深入探討如何在 Laravel 中建立關聯資料、使用 Eloquent ORM 操作資料庫,並將資料傳遞到前端視圖。這篇文章將涵蓋從資料庫遷移、Seeder、關聯模型的建立,到資料傳遞的完整流程,並介紹如何在前端展示資料。
在這篇文章中,我們將介紹如何使用 Laravel 的 MVC(模型-視圖-控制器)架構來處理資料的創建、更新、刪除操作,並展示如何使用外鍵連接其他資料表。我們將從前端發送請求到後端,並演示如何在 Controller 中處理這些請求來操作資料。
在 Laravel 框架中,MVC(模型-視圖-控制器)架構是一個常見的設計模式,能有效地幫助我們組織程式碼,將應用的資料邏輯、業務邏輯和視圖展示分開。本文將介紹如何使用 Laravel 的 MVC 架構來創建、讀取、更新和刪除資料(即 CRUD 操作),並將資料顯示到前端頁面上。
在 Laravel 中,操作資料庫的核心是透過 Model 來進行的。Model 不僅負責與資料表進行溝通,它還提供了一個簡單而直觀的方式來進行資料庫的增、刪、改、查等操作。今天,將學習如何建立 Model,創建資料表,並且如何在路由中進行資料操作。
Thumbnail
這一章節旨在介紹 PHP 中的物件導向編程(OOP)概念。通過詳細講解類別、建構子、訪問修飾符(公開、私有、受保護)、繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、委派、Lambda 表達式、泛型和反射等概念,使讀者能夠理解和應用這些 OOP 技術來編寫更具結構性和可維護性的 PHP 代碼。
Thumbnail
有的時候,會希望在物件導向中對原生的Class新增功能的時候,大多我們都會寫一個新的class並繼承。 但是其實Laravel提供了一個不同的方式,讓我們可以在常用的Class上,直接新增想要的function,那就是macro。
Thumbnail
有趣的是,Model 其實沒什麼嚴格的定義,所以每個人對 Model 的解讀也不盡相同,有人覺得資料怎麼儲存屬於 Model 的一部份 (受 ORM 工具的影響),有人覺得工作流程 (workflow) 是 Model 的一部份,我個人也有自己的想法,而且隨專案的規模和特性,也不是總是一樣的。
Thumbnail
※ 基本操作:SQL 語法,SELECT, WHERE, CREATE, UPDATE, DELETE。 SELECT:從資料庫中或資料表中指定要選擇的欄位中取得資料,稱之為查詢 (query)。 ※ 語法:要由兩部分構成,第一部分是要 "拿什麼" 資料 (若有多項用逗號隔開);第二部分則為
Migration在 Laravel 中是一種用來管理資料庫結構變更的機制。它的主要目的是使開發者能夠在應用程序的不同環境中保持資料庫結構的一致性,並輕鬆地進行結構變更
出現這個錯誤時,如何解決: Illuminate\Database\Eloquent\MassAssignmentException Add [name] to fillable property to allow mass assignment on [App\Models\XXXX]