wherein subconsultas query group-by laravel laravel-4 eloquent

group by - subconsultas - ¿Se puede usar la función with con una cláusula GroupBy en Laravel Eloquent?



subconsultas eloquent laravel (1)

¿Se puede usar la función with con una cláusula GroupBy en Laravel Eloquent? ¿Sirve para algo si tengo elementos específicos para seleccionar usando la Cláusula Select?

La siguiente es la consulta que tengo actualmente

Order::with(''Campaign'') ->where(''isapproved'',''='',''Y'') ->groupBy(''campaign_id'') ->orderBy(DB::raw(''COUNT(id)'',''desc'')) ->get(array(DB::raw(''COUNT(id) as totalsales'')));

La tabla de order tiene un nombre de columna campaign_id que belongsTo la tabla llamada campaigns . Me gustaría obtener el recuento total de las ventas de la tabla de pedidos en cada campaña y debo mostrarlo de la siguiente manera.

Total Sales Campaign ------------------------- 200 Campaign1 500 Campaign2 300 Campaign3

¿Debo realizar una selección específica o puedo acceder a los valores de la tabla Campaña desde la consulta anterior?


Si la columna referenciada requerida por el Modelo especificado en la función With se recupera en la cláusula SELECT , entonces la consulta With tiene en cuenta la función With . La consulta rectificada será

$groupedSalesCampaign = Order::with(''Campaign'') ->where(''isapproved'',''='',''Y'') ->groupBy(''campaign_id'') ->orderBy(DB::raw(''COUNT(id)'',''desc'')) ->get(array(DB::raw(''COUNT(id) as totalsales''),''campaign_id''));

De esta forma, la información de la campaña se puede recuperar usando

foreach($groupedSalesCampaign as $campaign) { Log::info($campaign->foo->bar); }

Editado