首页 > 解决方案 > 与参数的关系然后在 Eloquent Laravel 中使用 contains

问题描述

让下一个代码正常工作:

$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 过滤器。但是“包含”不起作用。

标签: laravellaravel-5eloquenteloquent-relationship

解决方案


你的问题不是很清楚,看你要过滤和获取相关模型,如果是这样试试。

$system_breeds = SystemsGroup::find($group_id)->breeds()->where('group_section_id',$section_id)->get();

推荐阅读