Как рассчитать поле в модели на основе другой таблицы? - PullRequest
1 голос
/ 05 февраля 2012

У меня есть одна модель:

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, если запись с ее идентификатором существует в какой-то другой таблице, поэтому я могу использовать такой SQL-код:

ВЫБРАТЬ ЕСЛИ ((ВЫБРАТЬ счетчик (*) ОТ programaPago, выпускник WHERE) alumno_id = ИД СООТВЕТСТВИЯ )> 0, 'Y', 'N')

Как мне написать функцию Calculate_is_inscrito?

1 Ответ

0 голосов
/ 05 февраля 2012
function calculate_is_inscrito(){
    return "IF( (SELECT count(*) FROM programaPago, alumno WHERE alumno_id=".
        ($this->table_alias?:$this->entity_code).".id)>0, 'Y', 'N')";
}
...