必要符号*基于条件

时间:2015-08-03 07:58:02

标签: php yii

有没有人知道如何在Yii中的某些条件下将*符号添加到表单字段中。我有一个现场电话,只有当用户位置是印度时才会出现。如果有印度登录位置的用户,则字段电话号码应显示为*符号

array('phone','required','on'=>'create'),

但我的文本字段仅在位置为india.ie时显示,

<?php

 if ($result->location=="india) {
 echo $form->textAreaRow($model, 'phone', array('class' => 'span7', 'rows' => 4,));

}
?>

1 个答案:

答案 0 :(得分:0)

您需要创建自定义验证规则,可能是这样的:

private $_country;

public function rules()
{
   return array(
        array('other_field, one_more_field', 'required'),
        array('phone', 'safe'),
        array('phone', 'requiredInIndia'),
    );
}

public function requiredInIndia($attribute, $params)
{
    if(!empty($this->phone))  
    {     
        if($this->country === 'IND')
        {
            $this->addError($attribute, 'Dude ! we need your phone number !');
        }
    }
 }

public function setCountry()
{
    // maybe from user ip address if you don't want to relate it to other attribute
    $user_ip = CHttpRequest::getUserHostAddress();
    $this->_country = some_fonction_to_get_country_iso_from_ip($user_ip);
}

public function getCountry()
{
    return $this->_country;
}

然后使用$your_model->country值手动打印视图中的*符号,如果它符合查找的国家/地区。