如何根据其他表计算模型中的字段?

时间:2012-02-05 03:08:17

标签: sql model atk4

我有一个型号:

class Model_Alumno extends Model_Table {
public $entity_code='alumno';
function init(){
    parent::init();

    $this->defineAuditFields();

    $this->addField('name')->caption('Nombre del Alumno')->mandatory(true);
    $this->addField('is_inscrito')->type('boolean')->calculated(true);
}
function calculate_is_inscrito(){
    what goes here????
}

}

我想将is_inscrito计算为Y或N,如果其他表中存在带有它的id的记录,那么我可以使用这样的SQL:

  

SELECT IF((SELECT count(*)FROM programaPago,alumno WHERE   alumno_id = 相应的ID )> 0,'Y','N')

如何编写calculate_is_inscrito函数?

1 个答案:

答案 0 :(得分:0)

function calculate_is_inscrito(){
    return "IF( (SELECT count(*) FROM programaPago, alumno WHERE alumno_id=".
        ($this->table_alias?:$this->entity_code).".id)>0, 'Y', 'N')";
}