我正在使用 codeigniter 和 datamapper 创建发票应用程序。
发票 has_many Invoice_item
我正在尝试针对发票保存新的 Invoice_items。
如果我执行以下操作:
$invoice = new Invoice(1474);
$invoice_item1 = new Invoice_item();
$invoice_item1->description = 'item 1';
$invoice_item2 = new Invoice_item();
$invoice_item2->description = 'item 2';
$items = array($invoice_item1, $invoice_item2);
foreach ($items as $item) {
$item->save($invoice);
}
这很好用,但我希望我能做这样的事情:
$invoice = new Invoice(1474);
$invoice_item1 = new Invoice_item();
$invoice_item1->description = 'item 1';
$invoice_item2 = new Invoice_item();
$invoice_item2->description = 'item 2';
$items = array($invoice_item1, $invoice_item2);
$invoice->save($items);
有可能这样做吗?非常感谢任何帮助或建议,谢谢。
更新:
发票型号
class Invoice extends DataMapper {
public $has_many = array('invoice_item');
public $has_one = array('customer');
public function __construct($id = NULL) {
parent::__construct($id);
}
public function getTotal() {
$this->invoice_item->get_iterated();
$total = 0;
foreach ($this->invoice_item as $item) {
$total += $item->price * $item->qty;
}
return number_format($total, 2);
}
public function getStatus() {
if (!$this->paid) {
$status = date_diff(date_create(date('Y-m-d')), date_create($this->invoice_date))->format('%a') . " days";
} else {
$status = 'PAID';
}
return $status;
}
public function save() {
parent::save();
$this->where('id', $this->id)->update('invoice_no', $this->id);
}
}
发票项目模型
class Invoice_item extends DataMapper {
public $has_one = array('invoice');
public function __construct($id = NULL) {
parent::__construct($id);
}
}