如何获取yii中的子字符串

时间:2013-01-03 08:54:03

标签: php yii substring textfield

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

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

例如 我在分类文本字段中输入了Office耗材 代码将获得O和S然后它将在提交之前输入到classcode texfield

1 个答案:

答案 0 :(得分: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);
}