0
    <tr style="display:none">       
  <td><?php echo $form->labelEx($model,'classcode'); ?></td>
        <td>    
            <?php echo $form->textField($model,'classcode',array('size'=>60,'maxlength'=>100,'id'=>'new-base-ref-si-classification-classcode','disabled'=>'')); ?>
            <?php echo $form->error($model,'classcode'); ?>

        </td>
    </tr>   
    <tr>
        <td><?php echo $form->labelEx($model,'Classification'); ?></td>
        <td>    
            <?php echo $form->textField($model,'Classification',array('size'=>60,'maxlength'=>100,'id'=>'new-base-ref-si-classification-Classification','disabled'=>'')); ?>
            <?php echo $form->error($model,'Classification'); ?>
        </td>
    </tr>   

我很难弄清楚该怎么做请帮助我..我需要的是隐藏类代码..当我输入aa字符串时,它的代码将获得第一个字母,然后它将在之前的类代码中输入点击提交按钮

例如,我在分类文本字段中输入了办公用品,代码将获得 O 和 S,然后在提交之前将其输入到 classcode texfield

4

1 回答 1

0

由于此字段不显示并且根本不会接收用户输入,因此您在视图文件中不需要它。

最好的方法是将类代码设置为不安全,这样它就不能被大量分配

然后在您的模型中提交后在服务器端计算:

public function rules()
{
    return array(
        // ... snip ... other rules here
        array('classcode', 'unsafe'), // will not be massively assigned, prevents hacks
        array('Classification', 'filterClasscode'), // custom validator
    );
}

/**
 * Custom filter to set classcode
 * @param string $attribute field to set classcode from
 */    
public function filterClasscode($attribute)
{
    $this->classcode = '';
    foreach (explode(' ', $this->$attribute) as $val) {
        $this->classcode .= substr($val, 0, 1);
    }

    $this->classcode = strtoupper($this->classcode);
}
于 2013-01-03T09:56:34.543 回答