CodeIgniter DataMapper相关项的顺序

时间:2013-04-23 10:45:38

标签: php codeigniter codeigniter-datamapper

我正在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;
}

1 个答案:

答案 0 :(得分:1)

您只需在发出->order_by()之前添加get_iterated()来电即可。因此,在您的示例中,它看起来像:

$c->invoice->order_by('invoice_date', 'desc')->get_iterated();