En mi caso

$products = $products->select(array('products.*', \DB::raw('COUNT(extra_fields.price) as price_count')))->leftJoin('extra_fields', 'products.id', '=', 'extra_fields.item_id')
                    ->where('item_type', 'App\Models\Product')
                    ->whereRaw("price = '0'")
                    ->whereRaw("price_count = 1")
                    ->groupBy('item_id')
                    ->groupBy('price')

                ;

Cuando quiero usar {price_count} en dónde o dónde puedo obtener:

Column not found: 1054 Unknown column 'price_count'

Price_count solo funciona de esta manera:

->orderBy('price_count')

¿Cómo puedo usar price_count en where o whereRaw?

Algún consejo ?

3
amir baqdadi 26 dic. 2016 a las 14:53

3 respuestas

La mejor respuesta

Puede usar havingRaw como:

->havingRaw('price_count = 1')

O

->having('price_count', '=', 1)

O

El método havingRaw se puede usar para establecer una cadena sin formato como el valor de la cláusula having.

->havingRaw('COUNT(extra_fields.price) = 1')
2
Amit Gupta 26 dic. 2016 a las 13:21

No puede usar el valor de la función de resumen como lo desee, en lugar de "dónde" puede usarlo en "tener".

Puede usar havingRaw como:

->havingRaw('price_count = 1')

O

->having('price_count', '=', 1)

O

->havingRaw('COUNT(extra_fields.price) = 1')
1
Lost Koder 13 ene. 2017 a las 16:13

No puede usar el valor de la función de resumen como lo desee, en lugar de "dónde" puede usarlo en "tener".

Espero que esto te ayude.

1
Manoj Sharma 26 dic. 2016 a las 11:56