Ничего подобного нет, но вы можете использовать метод withCount в качестве обертки для суммы следующим образом:
$websites = Website::withCount(['valid_click_ads'=>function($query){
$query->select( DB::raw( "COALESCE(SUM(clicks),0)" ) );
},
'facebook_ads'=>function($query){
$query->select( DB::raw( "COALESCE(SUM(clicks),0)" ) );
},
'google_ads'=>function($query){
$query->select( DB::raw( "COALESCE(SUM(clicks),0)" ) );
}])->get();
COALESCE - это функция SQL, которая возвращает сумму, если существует, иначе возвращает 0 вместо возврата нуля.
ОБНОВЛЕНИЕ: Если вы хотите получить отдельные столбцы суммирования, вы должны определить индекс для каждого из них и присвоить им псевдонимы следующим образом:
$websites = Website::withCount(['valid_click_ads as firstRes'=>function($query){
$query->select( DB::raw( "COALESCE(SUM(col1),0)" ) );
},
'valid_click_ads as secondRes'=>function($query){
$query->select( DB::raw( "COALESCE(SUM(col2),0)" ) );
}
])->get();
и т. Д.