У меня есть атрибут в моей модели, который хранится в двоичном формате внутри базы данных. В случае, если атрибут является геометрическим (многоугольным) объектом.
Этот объект может быть приведен к нескольким строковым представлениям. Итак, как я могу прикрепить событие после выполнения поиска, которое позволяет мне изменить атрибут только для возвращаемого набора?
Мое первое предположение состояло в том, чтобы использовать событие onAfterFind, но оно не вызывает обработчик с созданным элементом, как предполагает документация. Моя первая попытка была следующей в контроллере.
// an activeRecord class
GeoTableBinaryData extends CActiveRecord {
... // normal active record with a table which has a binary attribute called geom
}
$model = GeoTableBinaryData::model();
$model->onAfterFind->add(
function( CEvent $evt ){
// get the finded object to update the geom attribute on the fly here want
// a text representation in other case would transform it to XML or JSON
}
);
foreach ( $model->findAll() as $geoInfo )
{
... // output serialized geometry
}