我的Laravel项目有三个课程:城市,公司和活动。因此,City有很多公司,而Comapany属于一个城市;然后我有公司可能有一个或多个活动;我要问的是如何在城市中开展所有活动。
城市模型:
public function companies()
{
return $this->hasMany('App\Models\Company');
}
公司型号:
public function city()
{
return $this->belongsTo('App\Models\City');
}
public function activities()
{
return $this->belongsToMany('App\Models\Activity');
}
活动模型:
public function companies()
{
return $this->belongsToMany('App\Models\Company');
}
谢谢你的一切。 最诚挚的问候。
答案 0 :(得分:1)
您可以使用nested eager loading
加载所有公司和活动的城市模型City::with('companies.activities')->find($cityId);
如果您只想加载活动,可以使用whereHas()
方法:
Activity::whereHas('companies', function($q) use($cityId) {
$q->where('city_id', $cityId);
})->get();