【问题标题】:yii generate automatic form without modelyii 自动生成无模型表格
【发布时间】:2014-07-15 21:23:03
【问题描述】:

我正在使用 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
}
?>

【问题讨论】:

    标签: php yii


    【解决方案1】:

    使用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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多