CDataProvider
| Пакет | system.web |
|---|---|
| Наследование | абстрактный класс CDataProvider » CComponent |
| Реализует | IDataProvider |
| Подклассы | CActiveDataProvider, CArrayDataProvider, CSqlDataProvider |
| С версии | 1.1 |
| Исходный код | framework/web/CDataProvider.php |
Производным классам в основном необходимо реализовать три метода: fetchData, fetchKeys и calculateTotalItemCount.
Общественные свойства
| Свойство | Тип | Описание | Определено |
|---|---|---|---|
| data | массив | Возвращает элементы данных, доступные в данный момент. | CDataProvider |
| id | строка | Возвращает идентификатор, уникально определяющий источник данных. | CDataProvider |
| itemCount | целое число | Возвращает количество элементов данных на текущей странице. | CDataProvider |
| keys | массив | Возвращает значения ключей, связанные с элементами данных. | CDataProvider |
| pagination | CPagination|ложь | Возвращает объект постраничной навигации. | CDataProvider |
| sort | CSort|ложь | Возвращает объект сортировки. | CDataProvider |
| totalItemCount | целое число | Возвращает общее количество элементов данных. | 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() | Возвращает объект постраничной навигации. | CDataProvider |
| getSort() | Возвращает объект сортировки. | CDataProvider |
| getTotalItemCount() | Возвращает общее количество элементов данных. | CDataProvider |
| hasEvent() | Определяет, определено ли событие. | CComponent |
| hasEventHandler() | Проверяет, имеет ли указанное событие присоединенные обработчики. | CComponent |
| hasProperty() | Определяет, определено ли свойство. | CComponent |
| raiseEvent() | Вызывает событие. | CComponent |
| setData() | Устанавливает элементы данных для этого источника данных. | CDataProvider |
| setId() | Устанавливает идентификатор источника данных. | CDataProvider |
| setKeys() | Устанавливает ключи элементов данных для этого источника данных. | CDataProvider |
| setPagination() | Устанавливает постраничную навигацию для этого источника данных. | 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()). Когда страничная навигация установлена в false, это возвращает то же значение, что и totalItemCount.
keys свойство
public array getKeys(boolean $refresh=false)
public void setKeys(array $value)
Возвращает значения ключей, связанные с элементами данных.
pagination свойство
public CPagination|false getPagination(string $className='CPagination')
public void setPagination(mixed $value)
Возвращает объект страничной навигации.
sort свойство
public CSort|false getSort(string $className='CSort')
public void setSort(mixed $value)
Возвращает объект сортировки.
totalItemCount свойство
public integer getTotalItemCount(boolean $refresh=false)
public void setTotalItemCount(integer $value)
Возвращает общее количество элементов данных. Когда страничная навигация установлена в false, это возвращает то же значение, что и itemCount.
Подробное описание методов
calculateTotalItemCount() метод
abstract protected integer calculateTotalItemCount() | ||
| {return} | целое число | общее количество элементов данных. |
abstract protected function calculateTotalItemCount();
Вычисляет общее количество элементов данных.
fetchData() метод
abstract protected array fetchData() | ||
| {return} | массив | список элементов данных |
abstract protected function fetchData();
Извлекает данные из постоянного хранилища данных.
fetchKeys() метод
abstract protected array fetchKeys() | ||
| {return} | массив | список ключей элементов данных. |
abstract protected function fetchKeys();
Извлекает ключи элементов данных из постоянного хранилища данных.
getData() метод
public array getData(boolean $refresh=false) | ||
| $refresh | логическое значение | указывает, следует ли повторно извлекать данные из постоянного хранилища. |
| {return} | массив | список элементов данных, в настоящее время доступных в этом поставщике данных. |
public function getData($refresh=false)
{
if($this->_data===null || $refresh)
$this->_data=$this->fetchData();
return $this->_data;
}
Возвращает доступные в данный момент элементы данных.
getId() метод
public string getId() | ||
| {return} | строка | уникальный идентификатор, который однозначно идентифицирует поставщика данных среди всех поставщиков данных. |
public function getId()
{
return $this->_id;
}
Возвращает идентификатор, который однозначно идентифицирует поставщика данных.
getItemCount() метод
public integer getItemCount(boolean $refresh=false) | ||
| $refresh | логическое значение | указывает, следует ли повторно рассчитывать количество элементов данных. |
| {return} | целое число | количество элементов данных на текущей странице. |
public function getItemCount($refresh=false)
{
return count($this->getData($refresh));
}
Возвращает количество элементов данных на текущей странице. Это эквивалентно count($provider->getData()). Когда страничная навигация установлена в false, это возвращает то же значение, что и totalItemCount.
getKeys() метод
public array getKeys(boolean $refresh=false) | ||
| $refresh | логическое значение | указывает, следует ли повторно рассчитывать ключи. |
| {return} | массив | список значений ключей, соответствующих данным. Каждый элемент данных в данных уникально идентифицируется соответствующим значением ключа в этом массиве. |
public function getKeys($refresh=false)
{
if($this->_keys===null || $refresh)
$this->_keys=$this->fetchKeys();
return $this->_keys;
}
Возвращает значения ключей, связанные с элементами данных.
getPagination() метод
public CPagination|false getPagination(string $className='CPagination') | ||
| $className | строка | имя класса объекта страничной навигации. Параметр доступен начиная с версии 1.1.13. |
| {return} | CPagination|false | объект страничной навигации. Если это false, это означает, что страничная навигация отключена. |
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;
}
Возвращает объект страничной навигации.
getSort() метод
public CSort|false getSort(string $className='CSort') | ||
| $className | строка | имя класса объекта сортировки. Параметр доступен начиная с версии 1.1.13. |
| {return} | CSort|false | объект сортировки. Если это false, это означает, что сортировка отключена. |
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;
}
Возвращает объект сортировки.
getTotalItemCount() метод
public integer getTotalItemCount(boolean $refresh=false) | ||
| $refresh | логическое значение | указывает, следует ли повторно рассчитывать общее количество элементов данных. |
| {return} | целое число | общее количество возможных элементов данных. |
public function getTotalItemCount($refresh=false)
{
if($this->_totalItemCount===null || $refresh)
$this->_totalItemCount=$this->calculateTotalItemCount();
return $this->_totalItemCount;
}
Возвращает общее количество элементов данных. Когда страничная навигация установлена в false, это возвращает то же значение, что и itemCount.
setData() метод
public void setData(array $value) | ||
| $value | массив | помещает элементы данных в этот поставщик. |
public function setData($value)
{
$this->_data=$value;
}
Устанавливает элементы данных для этого поставщика.
setId() метод
public void setId(string $value) | ||
| $value | строка | уникальный идентификатор, который однозначно идентифицирует поставщика данных среди всех поставщиков данных. |
public function setId($value)
{
$this->_id=$value;
}
Устанавливает идентификатор поставщика.
setKeys() метод
public void setKeys(array $value) | ||
| $value | массив | помещает ключи элементов данных в этот поставщик. |
public function setKeys($value)
{
$this->_keys=$value;
}
Устанавливает ключи элементов данных для этого поставщика.
setPagination() метод
public void setPagination(mixed $value) | ||
| $value | mixed | используемая для данного поставщика данных постраничная навигация. Это может быть объект CPagination или массив для настройки объекта постраничной навигации. Если значение ложно, это означает, что постраничная навигация должна быть отключена. Вы можете настроить это свойство так же, как и компонент:
array(
'class' => 'MyPagination',
'pageSize' => 20,
),
|
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;
}
Устанавливает постраничную навигацию для данного поставщика данных.
setSort() метод
public void setSort(mixed $value) | ||
| $value | mixed | сортировка, используемая данным поставщиком данных. Это может быть объект CSort или массив для настройки объекта сортировки. Если значение ложно, это означает, что сортировка должна быть отключена. Вы можете настроить это свойство так же, как и компонент:
array(
'class' => 'MySort',
'attributes' => array('name', 'weight'),
),
|
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;
}
Устанавливает сортировку для данного поставщика данных.
setTotalItemCount() метод (доступен начиная с v1.1.1)
public void setTotalItemCount(integer $value) | ||
| $value | integer | общее количество элементов данных. |
public function setTotalItemCount($value)
{
$this->_totalItemCount=$value;
}
Устанавливает общее количество элементов данных. Этот метод предоставляется в случае, когда общее количество нельзя определить с помощью calculateTotalItemCount.
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CDataProvider