在Laravel中,我們經常需要使用關係型資料庫來儲存和管理數據,而一對多關係是其中最常見的一種。一對多關係指的是一個模型擁有多個關聯模型的關係,通常用於實現一些常見的業務場景,例如一個使用者對應多個訂單或一個課程對應多個學生等。
在Laravel中,我們可以使用Eloquent ORM來實作一對多關係查詢。以下我將詳細介紹如何使用Laravel中的Eloquent模型查詢三張表一對多關係式。
首先,我們要設計三張表,分別是主表、子表、子表外鍵關聯表。以下是範例表的設計:
主表:users
id | name | ##email|
---|---|---|
Tom | #tom@laravel.com | |
Jerry | jerry@laravel.com | |
Bob | ##bob@laravel.com |
#id | ||
##1 | ||
1 | 2 |
#1003 | 3 | |
---|---|---|
1 | 子表外鍵關聯表:order_items | |
##id | order_id | product_name |
#1 | 1 | |
class User extends Model { public function orders() { return $this->hasMany(Order::class); } }
class Order extends Model { public function user() { return $this->belongsTo(User::class); } public function items() { return $this->hasMany(OrderItem::class); } }
class OrderItem extends Model { public function order() { return $this->belongsTo(Order::class); } }
$user = User::find(1); foreach ($user->orders as $order) { echo $order->order_no; foreach ($order->items as $item) { echo $item->product_name; } }
$user = User::with('orders.items')->find(1); foreach ($user->orders as $order) { echo $order->order_no; foreach ($order->items as $item) { echo $item->product_name; } }
以上是laravel三張表一對多怎麼查的詳細內容。更多資訊請關注PHP中文網其他相關文章!