阅读(4913) (9)

Laravel 8 查询关联

2021-07-08 09:44:45 更新

由于 Eloquent 关联的所有类型都通过方法定义,你可以调用这些方法,而无需真实执行关联查询。另外,所有 Eloquent 关联类型用作 查询构造器,允许你在数据库上执行 SQL 之前,持续通过链式调用添加约束。

例如,假设一个博客系统的 User 模型有许多关联的 Post 模型:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    /**
     * 获取该用户的所有文章
     */
    public function posts()
    {
        return $this->hasMany('App\Models\Post');
    }
} 

你可以查询 posts 关联,并为其添加额外的约束:

$user = App\Models\User::find(1);

$user->posts()->where('active', 1)->get(); 

你可以在关联上使用任意 查询构造器 方法,请查阅查询构造器文档,学习那些对你有用的方法。