Laravel 5 使用Elount on laravel将一对多模型与sum连接起来

Laravel 5 使用Elount on laravel将一对多模型与sum连接起来,laravel-5,model,eloquent,relationships,Laravel 5,Model,Eloquent,Relationships,下面的工作很好,但我想把它改为两种模式一对多关系 如何编写查询 $results= 大::查询 ->选择'A.id','A.product' ->addSelectDB::raw'SUMCASE当B.approve=1时,则为1 当B.approve=-1时,则-1否则0以approveshow'结束 ->从“大人物”到“大人物” ->leftjoin'smails as B',函数$join{ $join->on'A.ID'、'='、'B.p_ID'; } ->groupBy'A.id','A

下面的工作很好,但我想把它改为两种模式一对多关系 如何编写查询

$results= 大::查询 ->选择'A.id','A.product' ->addSelectDB::raw'SUMCASE当B.approve=1时,则为1 当B.approve=-1时,则-1否则0以approveshow'结束 ->从“大人物”到“大人物” ->leftjoin'smails as B',函数$join{ $join->on'A.ID'、'='、'B.p_ID'; } ->groupBy'A.id','A.product' ->其中'A.id',$wantids ->得到; 我这样写模型 大模型~~~

类大扩展模型 { 公共职能部门 { return$this->hasnomy'App\Models\Big'、'p_id'、'id'; } } ~~~模型小~~~

类小扩展模型 { 公共职能大 { 返回$this->belongsTo'App\Models\Big'、'p_id'、'id'; } } 如何使用Elount和sum raw函数连接两个模型

$results=Big::其中的'id',$wantids->smalls。。。。?; 您可以使用修改的withCount并将总和表达式缩短一点:

大::选择“id”,“产品” ->withCount['smalls as approveshow'=>函数$query{ $query->selectDB::raw'SUMCASE WHEN approve IN-1,1然后approve ELSE 0 END'; }] ->其中'id',$wantids ->得到;
谢谢~但我想知道如何使用两种模型和雄辩的方法。你是说没有任何原始SQL?这是不可能的。所以只使用我原来的查询生成器几乎和雄辩的一样,因为他们都需要DB原始SQL?~我认为模型有更方便的方法,因为最后它只是有点简洁。