User Model:

<?php
namespace AppModels;

class User
{
    public function orders()
    {
        return $this->hasMany(Order::class);
    }
}

Order Model:

<?php
namespace AppModels;

class Model
{
    public function user()
    {
        return $this->belongsTo(User0::class);
    }
}

比如有以上一对多关系,User 和 Order 是一对多的关联关系,我们在日常开发中很多时候要获取用户是否创建过订单,有多种方法可以做到这一点,我们可以根据实际情况来选择最合适的。

#1在查询本身中,您可以过滤没有任何关联数据的模型:

User::has('orders')->get()

#2一旦你有了一个模型,如果你已经加载了集合(参见#4),你可以调用count()方法:

$user->orders->count();

#3如果您想在不加载关系的情况下进行检查,可以对关系运行查询:

$user->orders()->exists()

#4如果你想检查集合是否被预先加载:

if ($user->relationLoaded('orders')) {
    // Use the collection, like #2 does...
}