这是我第一次尝试使用CDbCriteria,所以我应该有一个概念错误,我在类AsistenciasUtils中有下一个函数:
public function getCodigoTecnico()
{
// $id=null;
$codigos=new CDbCriteria;
$codigos->select='codigo';
$codigos->condition='id=:id';
$codigos->params=array(':id'=>$id);
$listaCodigos=CHtml::listdata(Tecnicos::model()->findAll($codigos),'id','codigo');
return $listaCodigos;
}
这在_form中用于此行。
<div class="span4">
<?php echo $form->labelEx($model,'n_asistencia'); ?>
<?php echo $form->textFieldRow($model,'n_asistencia',array('disabled'=>true, 'value'=>AsistenciasUtils::getNumeroAsistencia(),)); ?>
<?php echo $form->error($model,'n_asistencia'); ?>
</div>
为了使用CDbCriteria,我已经阅读了很多相似的网站,但在这种情况下。
a)如果我不写paramas = array(),结果是下一个错误
“CDbCommandfallóalejecutar la sentencia //无法解释句子SQL:SQLSTATE [HY093]:参数号无效:没有参数被绑定。执行的SQL语句是:SELECT codigo FROM asistencias_tecnicos
{{1 WHERE id =:id “
b)如果我添加params行,我会在应用程序“错误500”的主体中重现此错误 未定义的变量:id “(这对我来说非常令人惊讶)
c)如果我用一个数字改变$ id变量它可以工作,但我只获得一个寄存器。
我并不认为究竟是什么是params(在SQL句子中)
还有一件事,当我没有错误(并且只返回一个寄存器)时,此消息会出现在_form的主体中。
我不明白错误。非常感谢。