PHP yii框架FormWidget组件
发布时间:2020-05-25 23:02:03 所属栏目:PHP 来源:互联网
导读:本篇文章介绍的是PHP yii框架Form组件,方便在view层更好调用此功能,话不多说上代码:1、先继承yii本身Widget类?php/*** User: lsh*/namespace systemwidgets;use systemhelpersSysHelper;use yiibaseInvalidCallException;use yiihelpersArrayHelper;class
本篇文章介绍的是PHP yii框架Form组件,方便在view层更好调用此功能,话不多说上代码:1、先继承yii本身Widget类 initAttr(); } protected function initAttr() { //初始化属性 $this->attr = ArrayHelper::merge($this->attr,[ 'id' => $this->name, 'name' => $this->name, 'placeholder' => $this->placeholder, 'class' => $this->cssClass, 'style' => $this->cssStyle, 'readonly' => $this->readonly ]); } /** * 把属性数组转为html * @param $attr array 属性数组 * @return string */ public function attrToHtml($attr = []) { $html = ''; if (is_array($attr)) { foreach ($attr as $k => $v) { if ($v !== null && $v !== '') { //处理布尔型 if (is_bool($v)) { $v = $v ? 'true' : 'false'; } $html .= $k . '='' . $v . '' '; } } } return $html; }}2、重写及继承Widget类
form) { $this->inline = $this->form->inline; $this->horizontal = $this->form->horizontal; } parent::init(); } /** * form列布局 * @param $widgetHtml string * @return string */ public function html($widgetHtml) { $html = ''; if ($this->title) { if (property_exists($this,'validate') && strrpos($this->validate,'required')) { $this->title = '' . $this->title; } $labelClass = 'control-label'; if ($this->horizontal) { if(is_numeric($this->horizontal)){ if($this->colWidth){ $labelClass .= ' col-md-'.$this->colWidth; }else{ $labelClass .= ' col-md-'.$this->horizontal; } } else{ $labelClass .= ' col-md-2'; } } $html = StringHelper::strFormat('
attr = ArrayHelper::merge($this->attr,[ 'type' => 'radio', 'class' => '', 'value' => $this->value, 'desc' => $this->desc ]); $attr = $this->attrToHtml($this->attr); return StringHelper::strFormat(' {2}',$attr,($this->isChecked ? 'checked' : ''),$this->desc); }}在Form类里引入就可以了,如下所示
/** * Radios类 */ private $radioClass = 'systemwidgetsRadios'; |
