ciao,
ho un dubbio che mi attanaglia. vorrei lasciare il model libero da ogni funzione contenente query e portarle tutte nel controller
Ho realizzato una funzione nel controller:
public function actionReport1()
{$nome = array ("1","2","3");
$lungh_array= count($nome);
for ($contatore=0; $contatore < $lungh_array; $contatore++)
{
for ($contatore2=0; $contatore2 < 12; $contatore2++)
{
$criteria2= new CDbCriteria;
$criteria2->select="device_category_id, COUNT( device_category_id) as totale ";
$criteria2->condition=" prj_start_date <= '2010-12-01' AND prj_start_date >='2010-11-01' AND (device_category_id='$nome[$contatore]) ";
// $criteria2->group="device_category_id";
$totale = CActiveRecord::model(Projects)->findall($criteria2);
$report[$contatore][$contatore2]= $totale;
CActiveDataProvider(get_class($this), array(
'criteria'=>$criteria2, ));
}
$this->render('report1',array('reports'=>$reports));
Se tolgo il commento dal group ovvero // $criteria2->group="device_category_id";
mi da errore relativo all'utilizzo di group. se la commento mi da sempre errore sql ma sulla linea 1
Non capisco dove sbaglio
Page 1 of 1
AR query nel controller
#3
Posted 29 October 2010 - 08:10 AM
Quote
ho un dubbio che mi attanaglia. vorrei lasciare il model libero da ogni funzione contenente query e portarle tutte nel controller
In teoria tutto quello che ha a che fare con il database dovrebbe stare nei model, mentre il controller non dovrebbe avere queste funzioni.
Nel controller dovresti usare robe tipo CActiveRecord::find e CDbCriteria, mentre nel model scrivere eventuali sql custom.
L'obiettivo e' di poter cambiare il database cambiando solo i model e, al piu', le view, ma non il controller.
Share this topic:
Page 1 of 1

Help












