Laravel 4 - 仅显示另一个数据库没有相关项的行的范围

Laravel 4 - Scope to only show rows where another DB has no relational items

我有一辆车table,还有一辆car_imagetable。

我想获取 car_image 中所有没有图像的汽车。

在我的汽车模型中,我正在制作示波器:

public function scopeNoImages($query)
{
    return $query-> ??
}

我如何创建一个范围,该范围将仅显示来自汽车 table 的结果,而这些汽车 table 在数据透视 table 中没有相关行?

假设 car_image 包含汽车图像:

在您的 Car 模型中:

public function images()
{
    return $this->hasMany('CarImage');
}

在您的 CarImage 模型中:

public function car()
{
    return $this->belongsTo('Car');
}

现在您可以像这样加载没有图像的汽车:

return Car::doesntHave('images')->get();

使用:doesntHave.