如在Kohana 3.3 中对用户列表进行排序,有多少个订单?
As in Kohana 3.3 sort the list of users, the number of orders?
假设我们有两个 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();
假设我们有两个 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();