user3092202
user3092202

Reputation: 147

How to display query assembled by ORM?

How to display query assembled by ORM ?

Example: SELECT article.id AS article:id, article.name AS article:name

I'm using the code below:

$query=DB::select('categories.*', 
                    array(DB::expr('COUNT(categories.id)'), 'total'),
                    array(DB::expr('MIN(displays.price)'), 'min_price'),
                    array(DB::expr('MAX(displays.price)'), 'max_price'),
                    array(DB::expr('SUM(displays.is_offer)'), 'is_offer')
            )
            ->from('categories')
                ->join('category_products', 'INNER')
                ->on('categories.id', '=', 'category_products.category_id')
                ->join('displays', 'INNER')
                ->on('category_products.product_id', '=', 'displays.product_id')
            ->where('displays.active', '>=', 1)
            ->group_by('categories.id')
            ->order_by('parent')
            ->order_by('total', 'desc');

Upvotes: 1

Views: 2012

Answers (1)

kero
kero

Reputation: 10638

Let's see, you're using DB::select() which returns a Database_Query_Builder_Select instance. In the doc it says

Database query builder for SELECT statements. See Query Builder for usage and examples.

And if you do see, you'll see

echo Debug::vars((string) $query);
// Should display:
// SELECT `username`, `password` FROM `users` WHERE `username` = 'john'

which makes sense once you see the __toString() from Database_Query_Builder_Select.

So

echo (string) $query;

should give you the query.

Upvotes: 2

Related Questions