为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel 检查查询生成器中 hasMany 关系中一个特定记录的值

Laravel 检查查询生成器中 hasMany 关系中一个特定记录的值

PHP
慕容3067478 2021-10-08 14:43:57
我正在尝试向我的查询构建器添加一些条件逻辑,但正在努力找到我需要寻找的正确函数......以这个例子为例;我们有模型 A,其中有许多模型 B。Model B包含name和value列。我现在想返回所有具有名称为“score”和的模型 B 的模型 As,以及value > 50另一个名称为“组”且值为“调试”的模型 B。PHP一旦模型全部返回,我将如何在查询构建器中按特定的 hasMany 关系进行过滤,而无需求助于基本模型?提前谢谢了。
查看完整描述

1 回答

?
慕码人8056858

TA贡献1803条经验 获得超6个赞

使用雄辩:


关系:在模型中A:


public function b()

{

   return $this->hasMany(B::class);

}

A::whereHas('b', function($b) {

   $b->where(function($query) {

       $query->whereName('score')

             ->where('value', '>', 50);

       })

    ->orWhere(function($query) {

        $query->whereName('group')

              ->where('value', 'debug');

     });

  })->get();



使用查询构建器:


\DB::table('a')->join('b', function ($join) {

            $join->on('a.id', '=', 'b.a_id');

        })->where(function ($q) {

            $q->where('b.name', 'score')

                ->where('b.value', '>', 50);

        })->orWhere(function ($q) {

            $q->where('b.name', 'group')

                ->where('b.value', 'debug');

        })

        ->get();


查看完整回答
反对 回复 2021-10-08
  • 1 回答
  • 0 关注
  • 250 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信