包 | system.web.form |
---|---|
继承 | abstract class CFormElement » CComponent |
子类 | CForm, CFormButtonElement, CFormInputElement, CFormStringElement |
源自 | 1.1 |
版本 | $Id: CFormElement.php 3426 2011-10-25 00:01:09Z alexander.makarow $ |
源码 |
CFormElement 是各种表单元素的基类。
CFormElement 实现了获取和设置任意的属性的方法。
CFormElement 实现了获取和设置任意的属性的方法。
公共属性
属性 | 类型 | 描述 | 定义在 |
---|---|---|---|
attributes | array | 通过这个对象来表现HTML元素的属性列表(name=>value)。 | CFormElement |
parent | mixed | 这个元素的真系父类。它可能是CForm对象,也可能是CBaseController对象。 (控制器或挂件)。 | CFormElement |
visible | boolean | 返回值说明这个元素是否可见并需要渲染。 | CFormElement |
公共方法
受保护方法
方法 | 描述 | 定义在 |
---|---|---|
evaluateVisible() | 评估这个元素是否可见。 | CFormElement |
属性详细
attributes
属性
public array $attributes;
通过这个对象来表现HTML元素的属性列表(name=>value)。
parent
属性
只读
public mixed getParent()
这个元素的真系父类。它可能是CForm对象,也可能是CBaseController对象。 (控制器或挂件)。
visible
属性
返回值说明这个元素是否可见并需要渲染。 这个方法将调用evaluateVisible来确定这个元素是否可见。
方法详细
__construct()
方法
public void __construct(mixed $config, mixed $parent)
| ||
$config | mixed | 这个元素的配置。 |
$parent | mixed | 这个元素的真系父类。 |
public function __construct($config,$parent)
{
$this->configure($config);
$this->_parent=$parent;
}
构造器。
参见
__get()
方法
public mixed __get(string $name)
| ||
$name | string | 属性名 |
{return} | mixed | 属性值 |
public function __get($name)
{
$getter='get'.$name;
if(method_exists($this,$getter))
return $this->$getter();
else if(isset($this->attributes[$name]))
return $this->attributes[$name];
else
throw new CException(Yii::t('yii','Property "{class}.{property}" is not defined.',
array('{class}'=>get_class($this), '{property}'=>$name)));
}
返回属性值。 不要调用这个方法。这是一个被我们覆盖了的PHP的魔术方法, 它允许如下语法来读取属性值:
$value=$element->propertyName; $value=$element->attributeName;
参见
__set()
方法
public void __set(string $name, mixed $value)
| ||
$name | string | 属性名 |
$value | mixed | 属性值 |
public function __set($name,$value)
{
$setter='set'.$name;
if(method_exists($this,$setter))
$this->$setter($value);
else
$this->attributes[$name]=$value;
}
设置属性值。 不要调用这个方法。这是一个被我们覆盖的PHP的魔术方法, 允许用如下语法设置一个属性的值。
$this->propertyName=$value; $this->attributeName=$value;
参见
__toString()
方法
public string __toString()
| ||
{return} | string | 代表这个实体的字符串。 |
public function __toString()
{
return $this->render();
}
将对象转换为字符串。 这是一个PHP的魔术方法。 默认实现是调用render 返回渲染结果。
configure()
方法
public void configure(mixed $config)
| ||
$config | mixed | 这个对象的配置。 它可以是表示属性名和它们的初始化值的数组。 它也可以是能够返回一个配置数组的文件名It 或PHP脚本。 |
public function configure($config)
{
if(is_string($config))
$config=require(Yii::getPathOfAlias($config).'.php');
if(is_array($config))
{
foreach($config as $name=>$value)
$this->$name=$value;
}
}
根据初始化的值来配置这个对象。
evaluateVisible()
方法
protected boolean evaluateVisible()
| ||
{return} | boolean | 这个元素是否可见。默认为true。 |
protected function evaluateVisible()
{
return true;
}
评估这个元素是否可见。 子类应该覆盖这个方法来实现真实的算法 来确定元素的可见性。
getParent()
方法
public mixed getParent()
| ||
{return} | mixed | 这个元素的真系父类。它可能是CForm对象,也可能是CBaseController对象。 (控制器或挂件)。 |
public function getParent()
{
return $this->_parent;
}
getVisible()
方法
public boolean getVisible()
| ||
{return} | boolean | 这个元素是否可见并需要渲染。 |
public function getVisible()
{
if($this->_visible===null)
$this->_visible=$this->evaluateVisible();
return $this->_visible;
}
返回值说明这个元素是否可见并需要渲染。 这个方法将调用evaluateVisible来确定这个元素是否可见。
render()
方法
abstract public string render()
| ||
{return} | string | 渲染结果 |
abstract function render();
渲染这个元素。
setVisible()
方法
public void setVisible(boolean $value)
| ||
$value | boolean | 这个元素是否可见并需要渲染。 |
public function setVisible($value)
{
$this->_visible=$value;
}