laravel三张表一对多怎么查

在Laravel中,我们经常需要使用关系型数据库来存储和管理数据,而一对多关系是其中最常见的一种。一对多关系指的是一个模型拥有多个关联模型的关系,通常用于实现一些常见的业务场景,比如一个用户对应多个订单或者一个课程对应多个学生等。

在Laravel中,我们可以使用Eloquent ORM来实现一对多关系查询。下面我将详细介绍如何使用Laravel中的Eloquent模型查询三张表一对多关系。

  • 设计三张表
  • 首先,我们需要设计三张表,分别是主表、子表和子表外键关联表。以下是示例表的设计:

    主表:users

    id name email
    1 Tom tom@laravel.com
    2 Jerry jerry@laravel.com
    3 Bob bob@laravel.com

    子表:orders

    id order_no user_id
    1 1001 1
    2 1002 2
    3 1003 3
    4 1004 1

    子表外键关联表:order_items

    id order_id product_name
    1 1 apple
    2 1 banana
    3 2 pear
    4 4 orange
    5 4 grape
  • 创建Laravel模型
  • 在Laravel中,我们需要创建三个模型,分别对应三张表。在创建模型的时候,我们需要定义模型之间的关联关系。

    主表模型:User

    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); } }登录后复制