yii生成没有模型的自动表单

时间:2014-07-15 21:23:03

标签: php yii

我正在使用Yii而我正在尝试自动生成表单生成器,我有一个字段数组依赖于这种情况,但我不知道如何不使用该模型CActiveForm因为当我创建这样的输入(下面的代码)时,我收到消息

"Property "cusform.hJd8tiZ7cn" is not defined."

hJd8tiZ7cn是我自定义字段的ID,显然这不是我模型的属性,感谢您的帮助。

<?php
//view
foreach($arrfields as $af){
?>
    <div class="row">
    <?php echo $form->labelEx($model,$af['xlabel']); ?>
    <?php echo $form->textField($model,$af['xobjectId'],array('size'=>60,'maxlength'=>128)); ?>
    <?php echo $form->error($model,$af['xobjectId']); ?>
    </div>

<?php
}
?>

1 个答案:

答案 0 :(得分:2)

使用CHtml帮助程序类。

CActiveForm调用CHtml来生成表单.CActiveForm的大多数方法都是CHtml中相应“活动”方法的包装器。

CActiveForm和活动的CHtml类仅用于生成ActiveRecord表单,即基于活动记录的表单。由于您不知道字段名称,并且它们未提前链接到数据库字段,因此您可以执行类似这样的操作

<?php
//view
foreach($arrfields as $af):
    <div class="row">
        <?php echo CHtml::label($af['xlabel'],$af['xobjectId'] ); ?>
        <?php echo CHtml::textField($af['xobjectId'],"",array('size'=>60,'maxlength'=>128)); ?>
    </div>
<?php endforeach; ?>

这将为您创建静态字段,但它不会为您提供使用activeRecord表单的所有功能,如验证和错误,如果您需要错误,您将需要构建自己的CForm模型,规则和操作等,了解如何使用form builder而不依赖于活动记录对象