我正在CodeIgniter / DataMapper中编写发票应用程序。
每个客户都有很多发票。
在视图中,我希望能够显示客户数据,然后显示该客户的发票表。
目前,我将客户及其相关发票加载到控制器中并将其发送到视图。
public function view($id) {
$c = new Customer($id);
$c->invoice->get_iterated();
$data['customer'] = $c;
}
但是,当我迭代发票以在视图中显示它们时,我真的希望它们按日期降序排列,但当然它们不是。
有没有办法指定相关项目的顺序或在显示它们之前对它们进行排序,还是我需要单独加载发票,如下面的控制器?
public function view($id) {
$c = new Customer($id);
$i = new Invoice();
$i->order_by('invoice_date', 'desc');
$i->get_where(array('customer_id' => $id));
$data['customer'] = $c;
$data['invoices'] = $i;
}
答案 0 :(得分:1)
您只需在发出->order_by()
之前添加get_iterated()
来电即可。因此,在您的示例中,它看起来像:
$c->invoice->order_by('invoice_date', 'desc')->get_iterated();