2014-10-17 48 views
0

您好,現在我正在使用Yii用戶模塊。我是新手,面臨一些問題。我在這裏創建了user/profileField/create的agentKey配置文件字段。現在我想讓它獨一無二。我需要改變它以使其獨特並在不滿足條件時拋出錯誤。在yii用戶模塊中創建一個獨特的字段

這是配置文件模型中的規則。

public function rules() 
{ 
    if (!$this->_rules) { 
     $required = array(); 
     $numerical = array(); 
     $float = array();  
     $decimal = array(); 
     $rules = array(); 

     $model=$this->getFields(); 

     foreach ($model as $field) { 
      $field_rule = array(); 
      if ($field->required==ProfileField::REQUIRED_YES_NOT_SHOW_REG||$field->required==ProfileField::REQUIRED_YES_SHOW_REG) 
       array_push($required,$field->varname); 
      if ($field->field_type=='FLOAT') 
       array_push($float,$field->varname); 
      if ($field->field_type=='DECIMAL') 
       array_push($decimal,$field->varname); 
      if ($field->field_type=='INTEGER') 
       array_push($numerical,$field->varname); 
      if ($field->field_type=='VARCHAR'||$field->field_type=='TEXT') { 
       $field_rule = array($field->varname, 'length', 'max'=>$field->field_size, 'min' => $field->field_size_min); 
       if ($field->error_message) $field_rule['message'] = UserModule::t($field->error_message); 
       array_push($rules,$field_rule); 
      } 
      if ($field->other_validator) { 
       if (strpos($field->other_validator,'{')===0) { 
        $validator = (array)CJavaScript::jsonDecode($field->other_validator); 
        foreach ($validator as $name=>$val) { 
         $field_rule = array($field->varname, $name); 
         $field_rule = array_merge($field_rule,(array)$validator[$name]); 
         if ($field->error_message) $field_rule['message'] = UserModule::t($field->error_message); 
         array_push($rules,$field_rule); 
        } 
       } else { 
        $field_rule = array($field->varname, $field->other_validator); 
        if ($field->error_message) $field_rule['message'] = UserModule::t($field->error_message); 
        array_push($rules,$field_rule); 
       } 
      } elseif ($field->field_type=='DATE') { 
       $field_rule = array($field->varname, 'type', 'type' => 'date', 'dateFormat' => 'yyyy-mm-dd', 'allowEmpty'=>true); 
       if ($field->error_message) $field_rule['message'] = UserModule::t($field->error_message); 
       array_push($rules,$field_rule); 
      } 
      if ($field->match) { 
       $field_rule = array($field->varname, 'match', 'pattern' => $field->match); 
       if ($field->error_message) $field_rule['message'] = UserModule::t($field->error_message); 
       array_push($rules,$field_rule); 
      } 
      if ($field->range) { 
       $field_rule = array($field->varname, 'in', 'range' => self::rangeRules($field->range)); 
       if ($field->error_message) $field_rule['message'] = UserModule::t($field->error_message); 
       array_push($rules,$field_rule); 
      } 
     } 

     array_push($rules,array(implode(',',$required), 'required')); 
     array_push($rules,array(implode(',',$numerical), 'numerical', 'integerOnly'=>true)); 
     array_push($rules,array(implode(',',$float), 'type', 'type'=>'float')); 
     array_push($rules,array(implode(',',$decimal), 'match', 'pattern' => '/^\s*[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?\s*$/')); 
     $this->_rules = $rules; 
    } 
    return $this->_rules; 
} 

回答

相關問題