我如何将条件与 laravel 相关联?

How can i put condition in relation in laravel?

我有 File 模型,它存储我的图像,我有 shop 模型,商店可以有很多图像并且在商店模型我写了这段代码:

public function Files()
    {
        return $this->hasMany('system\models\file', 'attachment_id');
    }

我想用它的图像检索商店模型,现在我的问题是如何将条件关联起来。我检索商店模型的代码是:

$shop = Shop::where('id', $id)->with('ShopType', 'User', 'Files')->get();


注意: 我需要为调用 attachment_id 的 Files 方法中设置的主题之一的关系设置 2 个条件,我的第二个条件是 attachment_type 请帮我。谢谢

型号

public function all() { 
     return $this->hasManyThrough('ShopType', 'User', 'Files');
} 

然后

$shop = Shop::with('all')->where('id',$id)->get();

你可以使用 constraining-eager-loads:

$shop = Shop::with(['ShopType','User', 'Files'=>function ($query)use($id)
{
query->where('id', $id);
}
])->get();

更多详细信息:

https://laravel.com/docs/7.x/eloquent-relationships#constraining-eager-loads