CDataProvider

Package system.web
Inheritance abstract class CDataProvider » CComponent
Implements IDataProvider
Subclasses CActiveDataProvider, CArrayDataProvider, CSqlDataProvider
Since 1.1
Source Code framework/web/CDataProvider.php
CDataProvider is a base class that implements the IDataProvider interface.

Derived classes mainly need to implement three methods: fetchData, fetchKeys and calculateTotalItemCount.

Public Properties

Property Type Description Defined By
data array Returns the data items currently available. CDataProvider
id string Returns the ID that uniquely identifies the data provider. CDataProvider
itemCount integer Returns the number of data items in the current page. CDataProvider
keys array Returns the key values associated with the data items. CDataProvider
pagination CPagination|false Returns the pagination object. CDataProvider
sort CSort|false Returns the sort object. CDataProvider
totalItemCount integer Returns the total number of data items. CDataProvider

Public Methods

Method Description Defined By
__call() Calls the named method which is not a class method. CComponent
__get() Returns a property value, an event handler list or a behavior based on its name. CComponent
__isset() Checks if a property value is null. CComponent
__set() Sets value of a component property. CComponent
__unset() Sets a component property to be null. CComponent
asa() Returns the named behavior object. CComponent
attachBehavior() Attaches a behavior to this component. CComponent
attachBehaviors() Attaches a list of behaviors to the component. CComponent
attachEventHandler() Attaches an event handler to an event. CComponent
canGetProperty() Determines whether a property can be read. CComponent
canSetProperty() Determines whether a property can be set. CComponent
detachBehavior() Detaches a behavior from the component. CComponent
detachBehaviors() Detaches all behaviors from the component. CComponent
detachEventHandler() Detaches an existing event handler. CComponent
disableBehavior() Disables an attached behavior. CComponent
disableBehaviors() Disables all behaviors attached to this component. CComponent
enableBehavior() Enables an attached behavior. CComponent
enableBehaviors() Enables all behaviors attached to this component. CComponent
evaluateExpression() Evaluates a PHP expression or callback under the context of this component. CComponent
getData() Returns the data items currently available. CDataProvider
getEventHandlers() Returns the list of attached event handlers for an event. CComponent
getId() Returns the ID that uniquely identifies the data provider. CDataProvider
getItemCount() Returns the number of data items in the current page. CDataProvider
getKeys() Returns the key values associated with the data items. CDataProvider
getPagination() Returns the pagination object. CDataProvider
getSort() Returns the sort object. CDataProvider
getTotalItemCount() Returns the total number of data items. CDataProvider
hasEvent() Determines whether an event is defined. CComponent
hasEventHandler() Checks whether the named event has attached handlers. CComponent
hasProperty() Determines whether a property is defined. CComponent
raiseEvent() Raises an event. CComponent
setData() Sets the data items for this provider. CDataProvider
setId() Sets the provider ID. CDataProvider
setKeys() Sets the data item keys for this provider. CDataProvider
setPagination() Sets the pagination for this data provider. CDataProvider
setSort() Sets the sorting for this data provider. CDataProvider
setTotalItemCount() Sets the total number of data items. CDataProvider

Protected Methods

Method Description Defined By
calculateTotalItemCount() Calculates the total number of data items. CDataProvider
fetchData() Fetches the data from the persistent data storage. CDataProvider
fetchKeys() Fetches the data item keys from the persistent data storage. CDataProvider

Property Details

data property

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

Returns the data items currently available.

id property

public string getId()
public void setId(string $value)

Returns the ID that uniquely identifies the data provider.

itemCount property read-only

public integer getItemCount(boolean $refresh=false)

Returns the number of data items in the current page. This is equivalent to count($provider->getData()). When pagination is set false, this returns the same value as totalItemCount.

keys property

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

Returns the key values associated with the data items.

pagination property

public CPagination|false getPagination(string $className='CPagination')
public void setPagination(mixed $value)

Returns the pagination object.

sort property

public CSort|false getSort(string $className='CSort')
public void setSort(mixed $value)

Returns the sort object.

totalItemCount property

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

Returns the total number of data items. When pagination is set false, this returns the same value as itemCount.

Method Details

calculateTotalItemCount() method

abstract protected integer calculateTotalItemCount()
{return} integer the total number of data items.
Source Code: framework/web/CDataProvider.php#44 (show)
abstract protected function calculateTotalItemCount();

Calculates the total number of data items.

fetchData() method

abstract protected array fetchData()
{return} array list of data items
Source Code: framework/web/CDataProvider.php#34 (show)
abstract protected function fetchData();

Fetches the data from the persistent data storage.

fetchKeys() method

abstract protected array fetchKeys()
{return} array list of data item keys.
Source Code: framework/web/CDataProvider.php#39 (show)
abstract protected function fetchKeys();

Fetches the data item keys from the persistent data storage.

getData() method

public array getData(boolean $refresh=false)
$refresh boolean whether the data should be re-fetched from persistent storage.
{return} array the list of data items currently available in this data provider.
Source Code: framework/web/CDataProvider.php#165 (show)
public function getData($refresh=false)
{
    if(
$this->_data===null || $refresh)
        
$this->_data=$this->fetchData();
    return 
$this->_data;
}

Returns the data items currently available.

getId() method

public string getId()
{return} string the unique ID that uniquely identifies the data provider among all data providers.
Source Code: framework/web/CDataProvider.php#50 (show)
public function getId()
{
    return 
$this->_id;
}

Returns the ID that uniquely identifies the data provider.

getItemCount() method

public integer getItemCount(boolean $refresh=false)
$refresh boolean whether the number of data items should be re-calculated.
{return} integer the number of data items in the current page.
Source Code: framework/web/CDataProvider.php#210 (show)
public function getItemCount($refresh=false)
{
    return 
count($this->getData($refresh));
}

Returns the number of data items in the current page. This is equivalent to count($provider->getData()). When pagination is set false, this returns the same value as totalItemCount.

getKeys() method

public array getKeys(boolean $refresh=false)
$refresh boolean whether the keys should be re-calculated.
{return} array the list of key values corresponding to data. Each data item in data is uniquely identified by the corresponding key value in this array.
Source Code: framework/web/CDataProvider.php#187 (show)
public function getKeys($refresh=false)
{
    if(
$this->_keys===null || $refresh)
        
$this->_keys=$this->fetchKeys();
    return 
$this->_keys;
}

Returns the key values associated with the data items.

getPagination() method

public CPagination|false getPagination(string $className='CPagination')
$className string the pagination object class name. Parameter is available since version 1.1.13.
{return} CPagination|false the pagination object. If this is false, it means the pagination is disabled.
Source Code: framework/web/CDataProvider.php#69 (show)
public function getPagination($className='CPagination')
{
    if(
$this->_pagination===null)
    {
        
$this->_pagination=new $className;
        if((
$id=$this->getId())!='')
            
$this->_pagination->pageVar=$id.'_page';
    }
    return 
$this->_pagination;
}

Returns the pagination object.

getSort() method

public CSort|false getSort(string $className='CSort')
$className string the sorting object class name. Parameter is available since version 1.1.13.
{return} CSort|false the sorting object. If this is false, it means the sorting is disabled.
Source Code: framework/web/CDataProvider.php#117 (show)
public function getSort($className='CSort')
{
    if(
$this->_sort===null)
    {
        
$this->_sort=new $className;
        if((
$id=$this->getId())!='')
            
$this->_sort->sortVar=$id.'_sort';
    }
    return 
$this->_sort;
}

Returns the sort object.

getTotalItemCount() method

public integer getTotalItemCount(boolean $refresh=false)
$refresh boolean whether the total number of data items should be re-calculated.
{return} integer total number of possible data items.
Source Code: framework/web/CDataProvider.php#221 (show)
public function getTotalItemCount($refresh=false)
{
    if(
$this->_totalItemCount===null || $refresh)
        
$this->_totalItemCount=$this->calculateTotalItemCount();
    return 
$this->_totalItemCount;
}

Returns the total number of data items. When pagination is set false, this returns the same value as itemCount.

setData() method

public void setData(array $value)
$value array put the data items into this provider.
Source Code: framework/web/CDataProvider.php#176 (show)
public function setData($value)
{
    
$this->_data=$value;
}

Sets the data items for this provider.

setId() method

public void setId(string $value)
$value string the unique ID that uniquely identifies the data provider among all data providers.
Source Code: framework/web/CDataProvider.php#59 (show)
public function setId($value)
{
    
$this->_id=$value;
}

Sets the provider ID.

setKeys() method

public void setKeys(array $value)
$value array put the data item keys into this provider.
Source Code: framework/web/CDataProvider.php#198 (show)
public function setKeys($value)
{
    
$this->_keys=$value;
}

Sets the data item keys for this provider.

setPagination() method

public void setPagination(mixed $value)
$value mixed the pagination to be used by this data provider. This could be a CPagination object or an array used to configure the pagination object. If this is false, it means the pagination should be disabled.

You can configure this property same way as a component:
array(
    'class' => 'MyPagination',
    'pageSize' => 20,
),
Source Code: framework/web/CDataProvider.php#93 (show)
public function setPagination($value)
{
    if(
is_array($value))
    {
        if(isset(
$value['class']))
        {
            
$pagination=$this->getPagination($value['class']);
            unset(
$value['class']);
        }
        else
            
$pagination=$this->getPagination();

        foreach(
$value as $k=>$v)
            
$pagination->$k=$v;
    }
    else
        
$this->_pagination=$value;
}

Sets the pagination for this data provider.

setSort() method

public void setSort(mixed $value)
$value mixed the sorting to be used by this data provider. This could be a CSort object or an array used to configure the sorting object. If this is false, it means the sorting should be disabled.

You can configure this property same way as a component:
array(
    'class' => 'MySort',
    'attributes' => array('name', 'weight'),
),
Source Code: framework/web/CDataProvider.php#141 (show)
public function setSort($value)
{
    if(
is_array($value))
    {
        if(isset(
$value['class']))
        {
            
$sort=$this->getSort($value['class']);
            unset(
$value['class']);
        }
        else
            
$sort=$this->getSort();

        foreach(
$value as $k=>$v)
            
$sort->$k=$v;
    }
    else
        
$this->_sort=$value;
}

Sets the sorting for this data provider.

setTotalItemCount() method (available since v1.1.1)

public void setTotalItemCount(integer $value)
$value integer the total number of data items.
Source Code: framework/web/CDataProvider.php#234 (show)
public function setTotalItemCount($value)
{
    
$this->_totalItemCount=$value;
}

Sets the total number of data items. This method is provided in case when the total number cannot be determined by calculateTotalItemCount.

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CDataProvider