Utilizzo scenario

Salve, non riesco a capire una cosa e spero qualcuno mi possa fare luce in merito.

In uno scenario ho la necessità di visualizzare dati filtrati in base alla presenza o meno di dati in una tabella collegata con relazioni.

Ho una tabella "anagrafica" ed una tabella "plus" collegata pkid ON idAnagrafica.

Ho definito la relazione anche in relations


'plus'=>array(self::HAS_MANY, 'AnagraficaPlus', 'idAnagrafica','order'=>'plus.pkid DESC','limit'=>20),

se nello scenario utilizzo




$criteria->with = array('plus'=>array(

   'joinType'=>'INNER JOIN',

   //'on' => "chiave='ACQUE-CHIARE' AND valore='SI'",

   'condition' => "chiave='ACQUE-CHIARE' AND valore='SI'",)

);

Non ottengo una vera inner join ma fa una select su anagrafica ed una su plus. Il risultato è simile ad una left outer join

se invece "riscrivo" la relazione nello scenario utilizzando




$criteria->join = "INNER JOIN tbl_anagraficaPlus ON tbl_anagraficaPlus.idAnagrafica = t.pkid";

$criteria->condition = "tbl_anagraficaPlus.chiave='ACQUE-CHIARE' AND tbl_anagraficaPlus.valore='SI'";



Allora la inner join effettivamente va.

Se cerco di fare le stesse cose utilizzando scopes e with insieme il risultato ottenuto è come nell’utilizzo di with in scenario (quindi non va bene per me).

Per pulizia volevo adoperare with e scopes, ma evidentemente c’è qualcosa di fondo che non capisco…

Qualcuno mi potrebbe delucidare in merito?

Grazie

visto che dopo qualche giorno non hai ancora ottenuto risposte, posso suggerirti di chiedere nel forum inglese, che è molto più fitto di utenti, ed eventualmente riportare qua il link e/o la risposta piu esauriente che ricevi?

Così i futuri lettori saranno agevolati, e poi, mi interessa molto la risposta.