Salve ragazzi sono nuovo di yii e mi sono subito imbattuto in un rompi capo.
Ho queste tabelle:
ecodice:CREATE TABLE IF NOT EXISTS `clienti` ( `id_cliente` int(11) NOT NULL AUTO_INCREMENT, `nome_categoria` varchar(100) NOT NULL, `nome_struttura` varchar(100) NOT NULL, `regione_sociale` text NOT NULL, `p_iva` text NOT NULL, `via` text NOT NULL, `citta` text NOT NULL, `provvincia` varchar(3) NOT NULL, `cap` varchar(5) NOT NULL, `telefono` text NOT NULL, `fax` text NOT NULL, `cellulare` text NOT NULL, `sito` text NOT NULL, `email` text NOT NULL, `note` text NOT NULL, `persona_riferimento` text NOT NULL, `codice_fiscale` char(16) NOT NULL, `img_principale` text NOT NULL, `img_1` text NOT NULL, `img_2` text NOT NULL, `img_3` text NOT NULL, `img_4` text NOT NULL, PRIMARY KEY (`id_cliente`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
codice:CREATE TABLE IF NOT EXISTS `pubblicita` ( `tipo_pubblicita` varchar(100) NOT NULL, `prezzo` float NOT NULL, `durata` int(11) NOT NULL, `num_max` int(11) NOT NULL, PRIMARY KEY (`tipo_pubblicita`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
e
come noterete tra clienti e pubblicita ce una relazione molti a molti che giustamente gii nella classe clienti ha tradotto in questa maniera:codice:CREATE TABLE IF NOT EXISTS `clienti_pubblicita` ( `tipo_pubblicita` varchar(100) NOT NULL, `id_cliente` int(11) NOT NULL, PRIMARY KEY (`tipo_pubblicita`,`id_cliente`), KEY `id_cliente` (`id_cliente`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
codice:'pubblicitas' => array(self::MANY_MANY, 'Pubblicita', 'clienti_pubblicita(id_cliente, tipo_pubblicita)'),
mentre nella classe pubblicita
codice:'clientis' => array(self::MANY_MANY, 'Clienti', 'clienti_pubblicita(tipo_pubblicita, id_cliente)'),
fin qui tutto bene... il problema sorge quando vado a creare questo metodo :
l'errore è questo:codice:public function getClienti_pubblicita($tipo_pubblicita){ $cliente= Clienti::model()->with(array( 'pubblicitas'=>array( 'select'=>'clienti.nome_struttura,clienti.img_principale', 'joinType'=>'INNER JOIN', 'condition'=>'clienti_pubblicita.tipo_pubblicita='+$tipo_pubblicita+'or clienti_pubblicita.tipo_pubblicita="all_inclusive"', ), ))->findAll(); return new CActiveDataProvider($this, array( 'cliente'=>$cliente, )); }
codice:Active record "Pubblicita" is trying to select an invalid column "clienti.nome_struttura". Note, the column must exist in the table or be an expression with alias.
Dove sbaglio?![]()
![]()
![]()

Rispondi quotando