Dataprovider con multijoin

Salve a tutti

so già che quello che sto per chiedervi sarà un po’ complicato sia da spiegare sia da capire :D

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 :D 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 :D

A me sembra che tu abbia semplicemente bisogno di due relazioni. O sbaglio?

Ma ti riferisci alle relazioni sulle tabelle?

Si, mi immagino un campo "in_vendita" in più che assumi dei valori "si/no".

direttamente nella tabella utente_osserva_prodotto??..bhe potrebbe essere una soluzione.

Sinceramente non ci avevo pensato.

In ogni caso grazie per la disponibilità :D