让下一个代码正常工作:
$system_breeds = SystemsGroup::find($group_id)->breeds;
$breeds = Breed::select('id', 'breed')->orderBy('breed')->get()->transform(function ($breed) use ($system_breeds) {
if ($system_breeds->contains($breed)) {
$breed->active = true;
}
return $breed;
});
在system_breeds上存在的每个品种上,我都会添加一个活动属性作为 true。
我现在想做的,是这样的:
$system_breeds = SystemsGroup::where('id',$group_id)->with(['breeds' => function($q) use ($section_id){
$q->where('group_section_id', $section_id);
}])->get();
因此,在关系上添加一个 where 筛选器。但是"包含"不起作用。
你的问题不太清楚,看你想过滤并获取相关的模型,如果是这样,试试这样。
$system_breeds = SystemsGroup::find($group_id)->breeds()->where('group_section_id',$section_id)->get();
我想$system_breeds是一个数组。尝试使用
collect($system_breeds)
一旦它是集合类的实例,"包含"方法应该可以工作。