Предположим, у нас есть две модели ORM:
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
Как вы видите список всех пользователей, отсортированный по количеству заказов? Является ли это возможным?
вы можете сортировать записи, используя order_by
ORM::factory('User')->order_by('order_id', 'desc')->find_all(); //Displays a list of all users
Я печатаю это прямо из головы, извините за возможные ошибки
ORM::factory('user')->join('orders', 'left')
->on('orders.id', '=', 'user.order_id')
->order_by(DB::expr('COUNT("orders.id")')
->find_all();