Salve a tutti
so già che quello che sto per chiedervi sarà un po’ complicato sia da spiegare sia da capire ![]()
Come da titolo avrei bisgno di fare un multijoin con dataprovider.
Mi spiego meglio ho le seguenti tabelle
prodotto affitto vendita utente utente_osserva_prodotto.
Ovviamente sono in relazione tra loro
In utente_osserva_prodotto ho due foreingkey una per l’idutente e una per l’idprodotto. Ora mi servirebbe fare in modo che dalla relazione che mi prende l’id prodotto io possa vedere se il prodotto è nella tabella vendita o nella tabella affitto. E’ possibile fare una cosa del genere?
In pratica si tratterebbe di fare una join su 4/5 tabelle.
Vi posto un po’ di codice magari è più utile:
public function actionAjaxprodottiosservati(){
$idutente=Yii::app()->user->getId();
$categorie=Categoria::model()->findAll();
$sottocategorie=Sottocategoria::model()->findAll();
$plus['categorie'] = CHtml::listData($categorie, 'idcategoria', 'nome_categoria');
$plus['sottocategorie']=CHtml::listData($sottocategorie,'idsottocategoria', 'nome_sottocategoria','idcategoria');
$dataProvider=new CActiveDataProvider('UtenteOsservaProdotto',array(
'criteria'=>array(
'with'=>'idutente0',
'with'=>'idprodotto0',
'select'=>'*',
'condition'=>'t.idutente= :id',
'params'=>array(':id'=>$idutente),
),
));
/*
$this->renderPartial('ajaxprodottiosservati',array(
'dataProvider'=>$dataProvider,
'plus'=>$plus,
));*/
}
le condizioni in criteria sono le relazioni alle tabelle prodotto ed utente.
Quindi la domanda sarebbe la seguente è possibile inserire all’interno di criteria anche le relazione della tabella prodotto in modo da sapere se il prodotto è in vendita o affitto? Cioè cerco di spiegarmi ancora meglio
il model prodotto ha altre relazioni con affitto e vendita (chiamate affittos e venditas) è possibile inserire queste relazioni nei criteria?
Altrimenti dovrei proseguire come sto proseguendo, cioè per ogni dominio risultante da questa query faccio un’altra query per vedere se il dominio è in affitto o in vendita.
Ringrazio anticipatamente spero sia + o - chiaro ![]()