Changeset 153

Show
Ignore:
Timestamp:
09/30/09 10:13:43 (6 months ago)
Author:
malko
Message:

- bug correction in modelCollection::get() when getting hasOne relation on foreign unique key

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/class-abstractmodel.php

    r152 r153  
    1212*            - $HeadURL$ 
    1313* @changelog 
     14*            - 2009-09-29 - bug correction in modelCollection::__get() when getting hasOne relation on foreign unique key 
    1415*            - 2009-07-08 - new modelCollection::slice() method 
    1516*            - 2009-07-07 - now [r]sort can sort properties get by user defined getter (abstractmodel::getPropertyName()). (don't work for dynamic methods [r]sortPropertyname) 
     
    396397                        $c = modelCollection::init($hasOne[$k]['modelName']); 
    397398                        $avoidEmptyPK = abstractModel::_getModelStaticProp($c->collectionType,'_avoidEmptyPK'); 
     399                        if( empty($hasOne[$k]['localField']) ){ //-- must be in presence of unique key field on foreign table 
     400                                return abstractModel::_makeModelStaticCall($hasOne[$k]['modelName'],'getFilteredInstances',array('WHERE '.$hasOne[$k]['foreignField'].' IN (?)',$this->PK)); 
     401                        }else{ 
    398402                        foreach($this->loadDatas() as $mk=>$m){ 
    399                                 $c[] = ($avoidEmptyPK && empty($m->datas[$hasOne[$k]['localField']]))?$m->{$k}:$m->datas[$hasOne[$k]['localField']]; 
     403                                        $c[] = ( $avoidEmptyPK && empty($m->datas[$hasOne[$k]['localField']]))?$m->{$k}:$m->datas[$hasOne[$k]['localField']]; 
     404                                } 
    400405                        } 
    401406                        return $c;