Utilizziamo da qualche giorno YII e abbiamo notato un problema.
Abbiamo utilizzato una notazione per le tabelle del tipo "NomeTabella".
Arrivati però al punto di fare una chiamata al DB servendoci del sistema fornito da Yii, ci siamo accorti di un possibile problema che forse potrebbe risultare penalizzante.
Questa è la chiamata che abbiamo scritto:
$sql = "SELECT * FROM ".Livelli::tableName()." WHERE(idLivelloUtente={$idLivelloUtente})";
$livelloUtente = Yii::app()->db->createCommand($sql)->queryRow();
Otteniamo il seguente errore:
CDbCommand failed to execute the SQL statement: SQLSTATE[42703]: Undefined column: 7 ERROR: column "livelloutente" does not exist at character 8. The SQL statement executed was: SELECT livelloUtente FROM "LivelliUtente" "t" WHERE (idLivelloUtente=1)
Per farla breve, Yii forza i tablename affinché risultino in minuscolo.
La funzione è dentro il file ModelCommand.php
protected function generateRelationName($tableName, $fkName, $multiple)
{
if(strcasecmp(substr($fkName,-2),'id')===0 && strcasecmp($fkName,'id'))
$relationName=rtrim(substr($fkName, 0, -2),'_');
else
$relationName=$fkName;
$relationName[0]=strtolower($relationName);
$rawName=$relationName;
if($multiple)
$relationName=$this->pluralize($relationName);
$table=$this->_schema->getTable($tableName);
$i=0;
while(isset($table->columns[$relationName]))
$relationName=$rawName.($i++);
return $relationName;
}
Per noi questo è un problema in quanto sia i nomi delle tabelle che i nomi dei campi sono scritti con camel-back notation.
Avete per caso avuto modo di incontrare questo problema e quindi trovare una soluzione?
Grazie.
Pietro
Page 1 of 1
Problema con camel back notation
#2
Posted 14 July 2011 - 05:52 AM
Senza leggere tutto il messaggio: come mai non avete usato il model di Yii ed avete scritto sql direttamente?
#3
Posted 14 July 2011 - 05:59 AM
Hai fatoo la stesa domanda nel forum inglese... ti ho gia risposto li...
Find more about me.... btw. Do you know your WAN IP?
#4
Posted 14 July 2011 - 09:21 AM
E mi sa che l'ha rifatta di nuovo qui nel forum italiano... sbaglio?
#5
Posted 14 July 2011 - 09:40 AM
Si ho postato due volte lo stesso messaggio.
Non conosco ancora bene il framework; non capisco perché YII forza in minuscolo nome tabella e campi.
Ho provato ad applicare quanto ricevuto con i suggerimenti riveuti ma senza successo.
Grazie
Non conosco ancora bene il framework; non capisco perché YII forza in minuscolo nome tabella e campi.
Ho provato ad applicare quanto ricevuto con i suggerimenti riveuti ma senza successo.
Grazie
Share this topic:
Page 1 of 1

Help












