atk4.2.1
請求書と支払いの 2 つのモデルがあります。請求書にフィールド (式) を追加したいのですが、既に支払われた金額を計算できます (複数の部分的な支払いが含まれる可能性があります)。結合と式を追加しましたが、そうではありません仕事、その式を書く正しい方法は何ですか?
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**)');
しかし、モデルで現在のIDを取得するにはどうすればよいですか???