[Risolto]Da Csqldataprovider A Cactivedataprovider

Salve ragazzi ,

Ho un problema nel creare da un CSqlDataProvider un CActiveDataProvider ho provato in questa maniera:




   $sql="SELECT id_pratica,data_versamento,versamento,entrata,uscita,Attore,m_f_attore,m_f_convenuto,convenuto FROM spese INNER JOIN prefixarchivio_pratiche ON spese.id_pratica = prefixarchivio_pratiche.ID WHERE prefixarchivio_pratiche.ID=".$id;

      

        $result=new CSqlDataProvider($sql);        

        

        $model->populateRecord($result,true);      

        

        $activedata= new CActiveDataProvider($model);



ma non mi recupera i valori, ovvero se vado se faccio il var_dump di result mi ritorna un’array vuoto, ma se la query la provo sul db funziona perfettamente

Visto che non riuscivo a capire l’errore ho provato a fondore due array e a passare al widget un Carraydataprovider cosi:




$criteria2 = new CDbCriteria();

        $criteria2->condition = 'id_pratica = :_id';

        $criteria2->params = array(':_id'=>$id); 


 $criteria1 = new CDbCriteria();

        $criteria1->condition = 'ID= :_id';

        $criteria1->select = 'm_f_attore,m_f_convenuto,Attore,convenuto';

        $criteria1->params = array(':_id'=>$id);       


        

        $activedata2= PrefixarchivioPratiche::model()->findAll($criteria1);

        $activedata=  Spese::model()->findAll($criteria2);

        

        

        $activedata3=new CArrayDataProvider(array_merge($activedata2, $activedata));



ma il widget mi dice che i campi che vado a richiamare nel columns non sono presenti nel model ovvero spese.m_f_attore etc.

Prova con:

    $model->populateRecord($result->getData(),true);

grazie alinchin, ho risolto in questa maniera :


$result= new CSqlDataProvider($sql);

passando la variabile $result al widget funziona perfettamente