CDataProvider
优质
小牛编辑
134浏览
2023-12-01
所有包 | 属性 | 方法
CDataProvider是实现IDataProvider接口的基类。
继承的类主要实现三个方法:fetchData, fetchKeys和calculateTotalItemCount。
public void setData(array $value)
public void setId(string $value)
public void setKeys(array $value)
public void setPagination(mixed $value)
public void setSort(mixed $value)
public void setTotalItemCount(integer $value)
源码: framework/web/CDataProvider.php#45 (显示)
源码: framework/web/CDataProvider.php#35 (显示)
源码: framework/web/CDataProvider.php#40 (显示)
源码: framework/web/CDataProvider.php#134 (显示)
源码: framework/web/CDataProvider.php#51 (显示)
源码: framework/web/CDataProvider.php#179 (显示)
源码: framework/web/CDataProvider.php#156 (显示)
源码: framework/web/CDataProvider.php#69 (显示)
源码: framework/web/CDataProvider.php#101 (显示)
源码: framework/web/CDataProvider.php#190 (显示)
源码: framework/web/CDataProvider.php#145 (显示)
源码: framework/web/CDataProvider.php#60 (显示)
源码: framework/web/CDataProvider.php#167 (显示)
源码: framework/web/CDataProvider.php#85 (显示)
源码: framework/web/CDataProvider.php#117 (显示)
源码: framework/web/CDataProvider.php#203 (显示)
包 | 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 |
继承的类主要实现三个方法:fetchData, fetchKeys和calculateTotalItemCount。
公共属性
隐藏继承属性
属性 | 类型 | 描述 | 定义在 |
---|---|---|---|
data | array | 返回当前可用的数据项。 | CDataProvider |
id | string | 返回所有数据提供者的唯一标识ID。 | CDataProvider |
itemCount | integer | 返回当前页面的数据项数目。 | CDataProvider |
keys | array | 返回相关数据项的键。 | CDataProvider |
pagination | CPagination | 返回pagination对象。 | CDataProvider |
sort | CSort | 返回sort对象。 | CDataProvider |
totalItemCount | integer | 返回所有数据项的总数。 | 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相等的值。
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 | 数据项的总数。 |
abstractprotectedfunctioncalculateTotalItemCount();
设置数据项的总数。
fetchData() 方法abstract protected array fetchData() | ||
{return} | array | 数据项的列表 |
abstractprotectedfunctionfetchData();
提取的持久性数据存储的数据。
fetchKeys() 方法abstract protected array fetchKeys() | ||
{return} | array | 数据项的键列表。 |
abstractprotectedfunctionfetchKeys();
提取的持久性数据存储的数据键。
getData() 方法public array getData(boolean $refresh=false) | ||
$refresh | boolean | 数据是否可以再次从持久性存储中取出。 |
{return} | array | 返回当前可用的数据提供者的列表。 |
publicfunctiongetData($refresh=false)
{
if($this->_data===null||$refresh)
$this->_data=$this->fetchData();
return$this->_data;
}
返回当前可用的数据项。
getId() 方法public string getId() | ||
{return} | string | 所有数据提供者的唯一标识ID。 |
publicfunctiongetId()
{
return$this->_id;
}
返回所有数据提供者的唯一标识ID。
getItemCount() 方法public integer getItemCount(boolean $refresh=false) | ||
$refresh | boolean | 键是否可被再次计算。 |
{return} | integer | 当前页面中的数据项数目。 |
publicfunctiongetItemCount($refresh=false)
{
returncount($this->getData($refresh));
}
返回当前页面的数据项数目。 和count($provider->getData())
的结果相同。 当pagination为false时,返回和totalItemCount相等的值。
public array getKeys(boolean $refresh=false) | ||
$refresh | boolean | 键是否可被再次计算。 |
{return} | array | 与data对应的键的列表。每个在data 的数据项都有一个唯一的键。 |
publicfunctiongetKeys($refresh=false)
{
if($this->_keys===null||$refresh)
$this->_keys=$this->fetchKeys();
return$this->_keys;
}
返回相关数据项的键。
getPagination() 方法public CPagination getPagination() | ||
{return} | CPagination | pagination对象。当值为false时,表示禁用分页。 |
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} | CSort | sort对象。为false时,表示禁用排序。 |
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) | ||
$refresh | boolean | 所有数据项是否可被再次计算。 |
{return} | integer | 所有数据项的的数目。 |
publicfunctiongetTotalItemCount($refresh=false)
{
if($this->_totalItemCount===null||$refresh)
$this->_totalItemCount=$this->calculateTotalItemCount();
return$this->_totalItemCount;
}
返回所有数据项的总数。 当pagination为false时,返回的值与itemCount相等。
setData() 方法public void setData(array $value) | ||
$value | array | 将数据项放到provider中。 |
publicfunctionsetData($value)
{
$this->_data=$value;
}
为provider设置数据项。
setId() 方法public void setId(string $value) | ||
$value | string | 所有数据项provider的唯一标识ID。 |
publicfunctionsetId($value)
{
$this->_id=$value;
}
设置provider的ID。
setKeys() 方法public void setKeys(array $value) | ||
$value | array | 设置provider数据项的键。 |
publicfunctionsetKeys($value)
{
$this->_keys=$value;
}
为provider设置数据项的键。
setPagination() 方法public void setPagination(mixed $value) | ||
$value | mixed | 此pagination被provider使用。值为CPagination对象或配置 pagination对象的数组。如果值为false,表示禁用分页。 |
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) | ||
$value | mixed | 此排序被数据提供者使用。值为CSort对象或配置排序对象的数组。 如果值为false,表示禁用排序。 |
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) | ||
$value | integer | 数据项的总数。 |
publicfunctionsetTotalItemCount($value)
{
$this->_totalItemCount=$value;
}
设置所有数据项的总数。 此方法在calculateTotalItemCount不能计算时使用。