当前位置:首页 > CMS教程 > 其它CMS > 列表

yii去掉必填项中星号的方法

发布:smiling 来源: PHP粉丝网  添加日期:2021-07-02 11:37:14 浏览: 评论:0 

这篇文章主要介绍了yii去掉必填项中星号的方法,实例分析了Yii中去除必填项中星号的原理与具体实现技巧,需要的朋友可以参考下。

本文实例讲述了yii去掉必填项中星号的方法,分享给大家供大家参考,具体如下:

如何去掉必填项里的星号呢?

先分析下代码实现:

  1. public function labelEx($model,$attribute,$htmlOptions=array()) 
  2. { 
  3.   return CHtml::activeLabelEx($model,$attribute,$htmlOptions); 
  4. } 
  5. public static function activeLabelEx($model,$attribute,$htmlOptions=array()) 
  6. { 
  7.   $realAttribute=$attribute; 
  8.   self::resolveName($model,$attribute); // strip off square brackets if any 
  9.   $htmlOptions['required']=$model->isAttributeRequired($attribute); 
  10.   return self::activeLabel($model,$realAttribute,$htmlOptions); 
  11. } 

当属性是必填的时候,它将渲染额外的CSS类个标记。特别的,它调用CModel::isAttributeRequired来决定属性是否为必填的。如果是,它将添加一个CSS类CHtml::requiredCss (public static $requiredCss='required';)到标签上,用CHtml::beforeRequiredLabel(public static $beforeRequiredLabel='';)和CHtml::afterRequiredLabel (public static $afterRequiredLabel='*';)来装饰标签。

  1. public function isAttributeRequired($attribute) 
  2. { 
  3.   foreach($this->getValidators($attribute) as $validator) 
  4.   { 
  5.     if($validator instanceof CRequiredValidator) return true; 
  6.   } 
  7.   return false; 
  8. } 

所以要去掉星号 或者换成别的可以再view中直接重新定义CHtml::requiredCss、CHtml::beforeRequiredLabel、CHtml::afterRequiredLabel即可,不显示星号就可这样。

<?php CHtml::$afterRequiredLabel = '';?>

<?php echo $form->labelEx($model,'email'); ?>

Tags: yii必填项星号

分享到: