Laravel 对雄辩的原始质疑

Laravel 对雄辩的原始质疑,laravel,eloquent,Laravel,Eloquent,我有以下疑问: select users.email, count(login_history.id) actions from users left join group_memberships ON group_memberships.user_id = users.id left join groups ON groups.id = group_memberships.group_id left join organisation

我有以下疑问:

select users.email, count(login_history.id) actions from users
          left join group_memberships ON group_memberships.user_id = users.id
          left join groups ON groups.id = group_memberships.group_id
          left join organisation ON organisation.group_id = groups.parent_id
          right join login_history ON login_history.user_id = users.id
        where group_memberships.group_id = 564 AND ((MONTH(login_history.created_at) = MONTH(CURDATE()) AND YEAR(login_history.created_at) = YEAR(CURDATE())))
        group by login_history.user_id
因为我想使用作用域,所以我需要这个有说服力的查询。我可以使用selectRaw和whereRaw,这应该可以工作,但是使用用户模型和这个查询的elount:Relationships会更好吗?有可能吗


非常感谢任何输入。

所有这些数据库操作都有很好的文档记录。也许除了左边的连接。 您可以使用回调函数这样做:

->leftJoin('category_lang', function( $join ) {
   $join->on( 'category_lang.category_id', '=', 'do_hta_dirs.hd_pag_ID' );
   $join->on( 'category_lang.lang_id', '=', 'do_hta_dirs.hd_dID' );
   $join->on( 'category_lang.active', '=', DB::raw( '1' ) );
})

查询生成器是一个选项,但是谢谢托马斯,你介意和我聊一会儿吗?我想挑出一点你们的想法:迟来的评论:关系实际上只是一个问题