将Mysql查询转换为Laravel

将Mysql查询转换为Laravel,mysql,laravel,Mysql,Laravel,我想将mysql查询转换为laravel查询 MySQL: select product_id as urun from product_features where feature_id = 58 or feature_id = 100 or (feature_id = 52 or feature_id = 48 or feature_id = 53) group by product_id having(count(product_id)

我想将mysql查询转换为laravel查询

MySQL:

select product_id as urun from product_features 
   where feature_id = 58 
      or feature_id = 100 
      or (feature_id = 52 or feature_id = 48 or feature_id = 53)      
   group by product_id having(count(product_id)>2)
编辑:我不能将“或”表达式括在括号中

编辑:我不能将“或”表达式括在括号中

当然可以。:-)

你想看的是Laravel的功能

$query->orWhere(function($query) {
    $query->where('foo', 'bar')
          ->orWhere('foo', 'not-bar');
});
我解决了这个问题

$query = DB::table('product_features')->where('feature_id', 52)->orWhere('feature_id', 48)->orWhere('feature_id', 53)->
    orWhere('feature_id', 100)->orWhere('feature_id', 58)->
    select('product_id')->groupBy('product_id')->havingRaw("count(product_id) > 2")->get();

您是否正确设置了模型和关系?可能会有所帮助。。。非常感谢。但是我不能把“或”表达式括在括号里。此外,当您单击创建此帖子时,按钮上显示“提问”。“我想要”是什么时候开始的问题?我们将帮助您修复bug,而不仅仅是完全为您完成工作。你做了什么研究?你试过什么代码?你面临什么问题?请阅读以获取关于如何提出有用问题的进一步指导。这是一篇没有以最佳方式表达的简单帖子,当然应该进行编辑,但见鬼,没有理由淘汰新用户。虽然这在您的特定情况下有效,但不会产生括号,这将在更复杂的查询中导致问题。请参阅我的答案,了解您如何处理查询的附加部分。我将按照您所说的做。非常感谢。