与参数的关系然后使用包含在雄辩的拉拉维尔



让下一个代码正常工作:

$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)

一旦它是集合类的实例,"包含"方法应该可以工作。

最新更新