CDataProvider

优质
小牛编辑
125浏览
2023-12-01
所有包 | 属性 | 方法
system.web
继承abstract class CDataProvider » CComponent
实现IDataProvider
子类CActiveDataProvider, CArrayDataProvider, CSqlDataProvider
源自1.1
版本$Id: CDataProvider.php 3426 2011-10-25 00:01:09Z alexander.makarow $
源码framework/web/CDataProvider.php
CDataProvider是实现IDataProvider接口的基类。

继承的类主要实现三个方法:fetchData, fetchKeys和calculateTotalItemCount。

公共属性

隐藏继承属性

属性类型描述定义在
dataarray返回当前可用的数据项。CDataProvider
idstring返回所有数据提供者的唯一标识ID。CDataProvider
itemCountinteger返回当前页面的数据项数目。CDataProvider
keysarray返回相关数据项的键。CDataProvider
paginationCPagination返回pagination对象。CDataProvider
sortCSort返回sort对象。CDataProvider
totalItemCountinteger返回所有数据项的总数。CDataProvider

公共方法

隐藏继承方法

方法描述定义在
__call()如果类中没有调的方法名,则调用这个方法。CComponent
__get()返回一个属性值、一个事件处理程序列表或一个行为名称。CComponent
__isset()检查一个属性是否为null。CComponent
__set()设置一个组件的属性值。CComponent
__unset()设置一个组件的属性为null。CComponent
asa()返回这个名字的行为对象。CComponent
attachBehavior()附加一个行为到组件。CComponent
attachBehaviors()附加一个行为列表到组件。CComponent
attachEventHandler()为事件附加一个事件处理程序。CComponent
canGetProperty()确定属性是否可读。CComponent
canSetProperty()确定属性是否可写。CComponent
detachBehavior()从组件中分离一个行为。CComponent
detachBehaviors()从组件中分离所有行为。CComponent
detachEventHandler()分离一个存在的事件处理程序。CComponent
disableBehavior()禁用一个附加行为。CComponent
disableBehaviors()禁用组件附加的所有行为。CComponent
enableBehavior()启用一个附加行为。CComponent
enableBehaviors()启用组件附加的所有行为。CComponent
evaluateExpression()计算一个PHP表达式,或根据组件上下文执行回调。CComponent
getData()返回当前可用的数据项。CDataProvider
getEventHandlers()返回一个事件的附加处理程序列表。CComponent
getId()返回所有数据提供者的唯一标识ID。CDataProvider
getItemCount()返回当前页面的数据项数目。CDataProvider
getKeys()返回相关数据项的键。CDataProvider
getPagination()返回pagination对象。CDataProvider
getSort()返回sort对象。CDataProvider
getTotalItemCount()返回所有数据项的总数。CDataProvider
hasEvent()确定一个事件是否定义。CComponent
hasEventHandler()检查事件是否有附加的处理程序。CComponent
hasProperty()确定属性是否被定义。CComponent
raiseEvent()发起一个事件。CComponent
setData()为provider设置数据项。CDataProvider
setId()设置provider的ID。CDataProvider
setKeys()为provider设置数据项的键。CDataProvider
setPagination()设置provider的pagination对象。CDataProvider
setSort()为数据提供者设置排序。CDataProvider
setTotalItemCount()设置所有数据项的总数。CDataProvider

受保护方法

隐藏继承方法

方法描述定义在
calculateTotalItemCount()设置数据项的总数。CDataProvider
fetchData()提取的持久性数据存储的数据。CDataProvider
fetchKeys()提取的持久性数据存储的数据键。CDataProvider

属性详细

data 属性 public array getData(boolean $refresh=false)
public void setData(array $value)

返回当前可用的数据项。

id 属性 public string getId()
public void setId(string $value)

返回所有数据提供者的唯一标识ID。

itemCount 属性 只读 public integer getItemCount(boolean $refresh=false)

返回当前页面的数据项数目。 和count($provider->getData())的结果相同。 当pagination为false时,返回和totalItemCount相等的值。

keys 属性 public array getKeys(boolean $refresh=false)
public void setKeys(array $value)

返回相关数据项的键。

pagination 属性 public CPagination getPagination()
public void setPagination(mixed $value)

返回pagination对象。

sort 属性 public CSort getSort()
public void setSort(mixed $value)

返回sort对象。

totalItemCount 属性 public integer getTotalItemCount(boolean $refresh=false)
public void setTotalItemCount(integer $value)

返回所有数据项的总数。 当pagination为false时,返回的值与itemCount相等。

方法详细

calculateTotalItemCount() 方法
abstract protected integer calculateTotalItemCount()
{return}integer数据项的总数。
源码: framework/web/CDataProvider.php#45 (显示) abstractprotectedfunctioncalculateTotalItemCount();

设置数据项的总数。

fetchData() 方法
abstract protected array fetchData()
{return}array数据项的列表
源码: framework/web/CDataProvider.php#35 (显示) abstractprotectedfunctionfetchData();

提取的持久性数据存储的数据。

fetchKeys() 方法
abstract protected array fetchKeys()
{return}array数据项的键列表。
源码: framework/web/CDataProvider.php#40 (显示) abstractprotectedfunctionfetchKeys();

提取的持久性数据存储的数据键。

getData() 方法
public array getData(boolean $refresh=false)
$refreshboolean数据是否可以再次从持久性存储中取出。
{return}array返回当前可用的数据提供者的列表。
源码: framework/web/CDataProvider.php#134 (显示) publicfunctiongetData($refresh=false)
{
if($this->_data===null||$refresh)
$this->_data=$this->fetchData();
return$this->_data;
}

返回当前可用的数据项。

getId() 方法
public string getId()
{return}string所有数据提供者的唯一标识ID。
源码: framework/web/CDataProvider.php#51 (显示) publicfunctiongetId()
{
return$this->_id;
}

返回所有数据提供者的唯一标识ID。

getItemCount() 方法
public integer getItemCount(boolean $refresh=false)
$refreshboolean键是否可被再次计算。
{return}integer当前页面中的数据项数目。
源码: framework/web/CDataProvider.php#179 (显示) publicfunctiongetItemCount($refresh=false)
{
returncount($this->getData($refresh));
}

返回当前页面的数据项数目。 和count($provider->getData())的结果相同。 当pagination为false时,返回和totalItemCount相等的值。

getKeys() 方法
public array getKeys(boolean $refresh=false)
$refreshboolean键是否可被再次计算。
{return}array与data对应的键的列表。每个在data 的数据项都有一个唯一的键。
源码: framework/web/CDataProvider.php#156 (显示) publicfunctiongetKeys($refresh=false)
{
if($this->_keys===null||$refresh)
$this->_keys=$this->fetchKeys();
return$this->_keys;
}

返回相关数据项的键。

getPagination() 方法
public CPagination getPagination()
{return}CPaginationpagination对象。当值为false时,表示禁用分页。
源码: framework/web/CDataProvider.php#69 (显示) publicfunctiongetPagination()
{
if($this->_pagination===null)
{
$this->_pagination=newCPagination;
if(($id=$this->getId())!='')
$this->_pagination->pageVar=$id.'_page';
}
return$this->_pagination;
}

返回pagination对象。

getSort() 方法
public CSort getSort()
{return}CSortsort对象。为false时,表示禁用排序。
源码: framework/web/CDataProvider.php#101 (显示) publicfunctiongetSort()
{
if($this->_sort===null)
{
$this->_sort=newCSort;
if(($id=$this->getId())!='')
$this->_sort->sortVar=$id.'_sort';
}
return$this->_sort;
}

返回sort对象。

getTotalItemCount() 方法
public integer getTotalItemCount(boolean $refresh=false)
$refreshboolean所有数据项是否可被再次计算。
{return}integer所有数据项的的数目。
源码: framework/web/CDataProvider.php#190 (显示) publicfunctiongetTotalItemCount($refresh=false)
{
if($this->_totalItemCount===null||$refresh)
$this->_totalItemCount=$this->calculateTotalItemCount();
return$this->_totalItemCount;
}

返回所有数据项的总数。 当pagination为false时,返回的值与itemCount相等。

setData() 方法
public void setData(array $value)
$valuearray将数据项放到provider中。
源码: framework/web/CDataProvider.php#145 (显示) publicfunctionsetData($value)
{
$this->_data=$value;
}

为provider设置数据项。

setId() 方法
public void setId(string $value)
$valuestring所有数据项provider的唯一标识ID。
源码: framework/web/CDataProvider.php#60 (显示) publicfunctionsetId($value)
{
$this->_id=$value;
}

设置provider的ID。

setKeys() 方法
public void setKeys(array $value)
$valuearray设置provider数据项的键。
源码: framework/web/CDataProvider.php#167 (显示) publicfunctionsetKeys($value)
{
$this->_keys=$value;
}

为provider设置数据项的键。

setPagination() 方法
public void setPagination(mixed $value)
$valuemixed此pagination被provider使用。值为CPagination对象或配置 pagination对象的数组。如果值为false,表示禁用分页。
源码: framework/web/CDataProvider.php#85 (显示) publicfunctionsetPagination($value)
{
if(is_array($value))
{
$pagination=$this->getPagination();
foreach($valueas$k=>$v)
$pagination->$k=$v;
}
else
$this->_pagination=$value;
}

设置provider的pagination对象。

setSort() 方法
public void setSort(mixed $value)
$valuemixed此排序被数据提供者使用。值为CSort对象或配置排序对象的数组。 如果值为false,表示禁用排序。
源码: framework/web/CDataProvider.php#117 (显示) publicfunctionsetSort($value)
{
if(is_array($value))
{
$sort=$this->getSort();
foreach($valueas$k=>$v)
$sort->$k=$v;
}
else
$this->_sort=$value;
}

为数据提供者设置排序。

setTotalItemCount() 方法 (可用自 v1.1.1)
public void setTotalItemCount(integer $value)
$valueinteger数据项的总数。
源码: framework/web/CDataProvider.php#203 (显示) publicfunctionsetTotalItemCount($value)
{
$this->_totalItemCount=$value;
}

设置所有数据项的总数。 此方法在calculateTotalItemCount不能计算时使用。