【发布时间】:2012-07-19 08:19:33
【问题描述】:
atk4.2.1
我有 Invoice 和 Payment 两个模型,我想在发票中添加一个字段(表达式),我可以计算已经支付的金额(可以有几个部分付款),我添加了一个 join 和一个表达式,因为他们不工作,写那个表达式的正确方法是什么?
class Model_Invoice extends Model_Table {
public $table='invoice';
function init(){
parent::init();
$this->hasOne('Customer');
$this->hasOne('Plan');
$this->addField('date')->type('date');
$this->addField('amount')->type('money');
$this->addField('cancelled')->type('boolean')->defaultValue(false);
$this->join('payment','id');
$this->addExpression('amountPaid')->set('sum(payment.amount)')
//*****above expression is not working*********//
}
}
.
class Model_Payment extends Model_Table {
public $table='payment';
function init(){
parent::init();
$this->hasOne('Invoice');
$this->addField('date')->type('date');
$this->addField('concept');
$this->addField('amount')->type('money');
}
}
我可能会这样表达:
$this->addExpression('amountPaid')->set('(SELECT sum(amount) FROM payment where invoice_id=**CURRENT ID**)');
但是如何在模型中获取CURRENT ID???
【问题讨论】:
-
我能够通过这个(我在开发组的某个地方得到它)获得模型中的 CURRENT ID:$this->_dsql()->getField('id')
标签: php user-interface frameworks atk4