User Model:
<?php
namespace App\Models;
class User
{
public function orders()
{
return $this->hasMany(Order::class);
}
}
Order Model:
<?php
namespace App\Models;
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...
}