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

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

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

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

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

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

先分析下代码实现:

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

当属性是必填的时候,它将渲染额外的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.   foreach($this->getValidators($attributeas $validator
  3.   { 
  4.     if($validator instanceof CRequiredValidator) return true; 
  5.   } 
  6.   return false; 

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

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

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

Tags: yii必填项星号

分享到: