好的,这样我的项目就可以运行了,但是我的很多数据库都是原始查询,我想用laravel 5方式来完成。

到目前为止,我已经设法在laravel 5中轻松地完成了一些简单的操作,但是我正在努力在laravel中复制此查询:

$ave=DB::select("SELECT `question`.`questionID`,
COUNT(`reviewmeta`.`id`) as count,  `reviewmeta`.`answer`
FROM `question`
JOIN `reviewmeta`
ON (`question`.`questionID` = `reviewmeta`.`questionID`)
WHERE `question`.`watchID`='".$hwid."'
AND  `question`.`type`='FFT'
GROUP BY `reviewmeta`.`answer` ");


例如,这就是我转换原始查询之一的方式:

Laravel 5种方式

public static function getWatchListInfo($serviceIDS){
    $services = DB::table('services')
                ->distinct()
                ->leftJoin('reviews','services.serviceID','=','reviews.serviceID')
                ->join('service_categories','services.type','=','service_categories.categoryID')
                ->select('services.id','services.name','services.review_count_approved','reviews.escalate','services.average_rating','service_categories.name as catName')
                ->whereIn('services.serviceID',$serviceIDS);
    return $services;
}

最佳答案

您只需要像这样添加-> count():

-> whereIn('services.serviceID',$ serviceIDS)-> count()

10-06 13:53
查看更多