Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    517

    [YII] problemi con chiavi primarie composte

    Salve ragazzi sono nuovo di yii e mi sono subito imbattuto in un rompi capo.

    Ho queste tabelle:

    codice:
    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 ;
    e
    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
    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;
    come noterete tra clienti e pubblicita ce una relazione molti a molti che giustamente gii nella classe clienti ha tradotto in questa maniera:
    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 :
    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,
                    ));
            }
    l'errore è questo:
    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?

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    517
    Risolto , la select non va inserita perchè era già contenuta

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.