Laravel集合包含多个值

问题描述 投票:0回答:1

我正在寻找在关系“ fonction_divisions”中具有fonction_id === 1和categorie_compet_id === 1的仲裁人

[这里是我的关系:

 public function fonction_divisions(){
        return $this->hasMany(LicenceFonctionDivision::class , 'licence_id');
    }

这里是我的表的数据库结构:

enter image description here

仅使用一个参数categorie_compet_id,就可以了,我得到了我的许可证:

 return $arbitre->fonction_divisions->contains('categorie_compet_id', $division_rencontre);

使用回调我在集合中没有得到任何结果:

$fonction_id = 1;
$division_rencontre = 1;

$arbitre->fonction_divisions->contains(function ($val) use ($fonction_id, $division_rencontre) {

           return $val->fonction_id === $fonction_id && $val->categorie_compet_id === $division_rencontre;

    });

我仍然应该得到结果,因为在我的数据库中我有:

enter image description here

laravel
1个回答
0
投票
您使用的是错误的方法contains()返回一个布尔值,它将检查集合中是否包含至少一个与您的条件匹配的项目。要在集合中使用where()方法来检索您要寻找的模型,或者使用查询生成器直接从数据库中检索模型,因此您不必从数据库中加载所有模型,只需寻找一个模型即可。

使用收藏夹

return $arbitre->fonction_divisions->where('fonction_id', $fonction_id)->where('categorie_compet_id', $division_rencontre);

使用查询生成器

return $arbitre->fonction_divisions()->where('fonction_id', $fonction_id)->where('categorie_compet_id', $division_rencontre)->get();
© www.soinside.com 2019 - 2024. All rights reserved.