atk4.2.1如何做數學運算與模型字段或表達式敏捷工具包
我有這樣的模式:
class Model_Cargo extends Model_Table {
public $table='cargo';
function init(){
parent::init();
$this->hasOne('Alumno');
$this->hasOne('Plan');
$this->addField('fecha')->type('date');
$this->addField('fechaCreacion')->type('date');
$this->addField('fechaVencimiento')->type('date');
$this->addField('name');
$this->addField('monto')->type('money');
$this->addField('cancelado')->type('boolean')->defaultValue(false);
$this->hasMany('Abono');
$this->addExpression('abonos')->set($this->refSQL('Abono')->sum('monto'));
}
}
我wanto做一個數學運算+或 - 兩個字段: 我實際上想要用'abonos'表達式替換'monto'字段,我該怎麼做?
可以說是這樣的:
$this->addExpression('balance')->set('monto'-'abonos');
//this does not work
我也沃爾德喜歡addCondition其中這些領域都是平等的。我能做到這一點?
東西艾克:
$this->addCondition('monto','abonos');
//this does not work
它不工作,這是可以的字段,但不是表達式,這是選擇: pdo_error:SQLSTATE [42S22]:未找到列:1054'字段列表'中的未知列'abonos' 模式:select params:Array() 查詢:select(從'alumno'中選擇'name',其中'cargo'.'alumno_id' ='alumno'.'id')'alumno',(從'plan'中選擇'name' ''plan'.'plan_id' ='plan'.'id')'plan','fecha','fechaVencimiento','name','monto','cancelado','fechaCreacion',(select sum('monto ''從'abono'從哪裏'abono'.'cargo_id' ='cargo'.'id')'abonos',monto - abonos'balance','id','fechaCancelacion' from'cargo' – mcanedo 2012-07-22 13:55:18
這是因爲abonos是不是列而是計算字段。你必須在set(「..」)中設置完整查詢才能找到平衡字段。 – jancha 2012-07-22 23:25:06