entermix
entermix

Reputation: 23

As in Kohana 3.3 sort the list of users, the number of orders?

Suppose we have two ORM model:

class Model_User extends ORM
{
    protected $_has_many = array(
        'orders' => array(
            'model' => 'Order',
            'foreign_key' => 'order_id',
            ),
        );
}

class Model_Order extends ORM
{
    protected $_belongs_to = array(
        'author' => array(
            'model' => 'User',
            'foreign_key' => 'author_id',
            ),
        );
}

ORM::factory('User')->find_all(); //Displays a list of all users

As you can see a list of all users, sorted by the number of orders? Is it possible?

Upvotes: 0

Views: 67

Answers (2)

karpdamian
karpdamian

Reputation: 51

I type this straight out my head, so sorry for eventual mistakes

ORM::factory('user')->join('orders', 'left')
                    ->on('orders.id', '=', 'user.order_id')
                    ->order_by(DB::expr('COUNT("orders.id")')
                    ->find_all();

Upvotes: 1

Jayson
Jayson

Reputation: 1109

you can sort records using order_by

ORM::factory('User')->order_by('order_id', 'desc')->find_all(); //Displays a list of all users

Upvotes: 0

Related Questions