PHP yii框架FormWidget元件

2022-08-10 17:57:12 字數 3015 閱讀 6979

本篇文章介紹的是php yii框架form元件,方便在view層更好呼叫此功能,話不多說上**:

1、先繼承yii本身widget類

<?php

/*** user: lsh

*/namespace system\widgets;

use system\helpers\syshelper;

use yii\base\invalidcallexception;

use yii\helpers\arrayhelper;

class widget extends \yii\base\widget

protected function initattr()

/*** 把屬性陣列轉為html

* @param $attr array 屬性陣列

* @return string

*/public function attrtohtml($attr = )

$html .= $k . '=\'' . $v . '\' ';}}

}return $html;}}

2、重寫及繼承widget類

<?php

namespace system\widgets;

use system\helpers\stringhelper;

use yii\base\errorhandler;

use system\helpers\syshelper;

class formwidget extends widget

parent::init();

}/**

* form列布局

* @param $widgethtml string

* @return string

*/public function html($widgethtml)

$labelclass = 'control-label';

if ($this->horizontal) else

}else

}$html = stringhelper::strformat(':', $this->title, $labelclass);

}if ($this->inline) elseif ($this->horizontal)

', $widgethtml, 'col-md-' . $this->colclass, $this->suffix);

}else

', $widgethtml, 'col-md-' . $this->colclass);}}

else

', $widgethtml, 'col-md-' . $this->colclass);

}if ($this->tips)

$html .= stringhelper::strformat('', $this->tips);

if ($this->form)

$html = stringhelper::strformat('

', $html);

return $html;

}/**

* 子類重構方法,設定控制項html

*/public function getwidget()

/*** 渲染控制項

*/public function renderitem()

/*** 魔術方法, 以string形式返回控制項

*/public function __tostring()

/*** widget()方法自動呼叫

*/public function run()

catch (\exception $e)

}public function width($width)

$this->cssstyle .= 'width:' . $width . 'px';

return $this;

}public function tips($tips)

public function inline()

public function horizontal()

public function suffix($suffix)

public function colwidth($colwidth)

}3、以radio為例,先建立radio類,繼承formwidget

<?php

namespace system\widgets;

use system\helpers\stringhelper;

use system\helpers\syshelper;

use yii\helpers\arrayhelper;

class radios extends formwidget

', $attr, ($this->ischecked ? 'checked' : ''), $this->desc);}}

在form類裡引入就可以了,如下所示

<?php

namespace system\widgets;

use system\helpers\stringhelper;

use yii;

use yii\helpers\arrayhelper;

class form extends widget

}估計有的童鞋看到了乙個

stringhelper::strformat方法,**如下
/**

* 格式輸出字串

* */

public static function strformat()

(?!\})/', $format, $matches, preg_offset_capture);

$offset = 0;

foreach ($matches[1] as $data)

return $format;

}4、在view裡直接例項化form類,呼叫此方法就可以了

<?= $form->radios() ?>

歡迎小夥伴們前來討論!

php yii框架 目錄說明

yii框架說明 版本1.x yiiframework架構下的所有應用都由物件例項驅動完成,完全是純oo程式設計。其中最基礎,最核心的是ccomponent類,了解ccomponent的用途和設計思想是認識yiiframework的基礎中的基礎。yiiframework架構下的所有應用都由物件例項驅動...

phpyii框架倒敘 Yii 框架入口指令碼示例分析

目錄 入口指令碼 web 應用 控制台應用 定義常量 入口指令碼 入口指令碼是應用啟動流程中的第一環,乙個應用 不管是網頁應用還是控制台應用 只有乙個入口指令碼。終端使用者的請求通過入口指令碼例項化應用並將請求 到應用。web 應用的入口指令碼必須放在終端使用者能夠訪問的目錄下,通常命名為 inde...

php Yii框架建立子網域名稱訪問路徑

最近在做專案時,需求上要求為專案加子網域名稱。例 預設訪問 www.a.com 現在需要使用 b.a.com 同樣能夠訪問 子網域名稱繫結後,訪問情況如下 此問題是因為子網域名稱不知道訪問哪個 控制器 所導致的。到了這裡後,我們就考慮給其指定訪問 控制器 於是在 main.php 裡做了以下配置,y...