Spec-Zone.ru › Yii 1.1

CActiveDataProvider

Пакет system.web
Наследование class CActiveDataProvider » CDataProvider » CComponent
Реализует IDataProvider
С версии 1.1
Исходный код framework/web/CActiveDataProvider.php
CActiveDataProvider реализует поставщик данных на основе ActiveRecord.

CActiveDataProvider предоставляет данные в виде объектов ActiveRecord, которые являются экземплярами класса modelClass. Он использует метод AR CActiveRecord::findAll для получения данных из базы данных. Свойство criteria может использоваться для задания различных параметров запроса.

CActiveDataProvider может использоваться следующим образом:
$dataProvider=new CActiveDataProvider('Post', array(
    'criteria'=>array(
        'condition'=>'status=1',
        'order'=>'create_time DESC',
        'with'=>array('author'),
    ),
    'countCriteria'=>array(
        'condition'=>'status=1',
        // 'order' and 'with' clauses have no meaning for the count query
    ),
    'pagination'=>array(
        'pageSize'=>20,
    ),
));
// $dataProvider->getData() will return a list of Post objects

Общественные свойства

Свойство Тип Описание Определено в
countCriteria CDbCriteria Возвращает критерии запроса для подсчета. CActiveDataProvider
criteria CDbCriteria Возвращает критерии запроса. CActiveDataProvider
data array Возвращает элементы данных, которые в настоящее время доступны. CDataProvider
id string Возвращает идентификатор, уникально определяющий поставщик данных. CDataProvider
itemCount integer Возвращает количество элементов данных на текущей странице. CDataProvider
keyAttribute string имя ключевого атрибута для modelClass. CActiveDataProvider
keys array Возвращает значения ключей, связанные с элементами данных. CDataProvider
model CActiveRecord экземпляр нахождения AR (например, Post::model()). CActiveDataProvider
modelClass string имя основного класса ActiveRecord. CActiveDataProvider
pagination CPagination|false Возвращает объект постраничной навигации. CDataProvider
sort CSort Возвращает объект сортировки. CActiveDataProvider
totalItemCount integer Возвращает общее количество элементов данных. CDataProvider

Публичные методы

Метод Описание Определено в
__call() Вызывает именованный метод, который не является методом класса. CComponent
__construct() Конструктор. CActiveDataProvider
__get() Возвращает значение свойства, список обработчиков событий или поведение по его имени. CComponent
__isset() Проверяет, является ли значение свойства нулевым. 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
getCountCriteria() Возвращает критерии запроса подсчета. CActiveDataProvider
getCriteria() Возвращает критерии запроса. CActiveDataProvider
getData() Возвращает элементы данных, которые в данный момент доступны. CDataProvider
getEventHandlers() Возвращает список присоединённых обработчиков событий для события. CComponent
getId() Возвращает ID, уникально идентифицирующий поставщик данных. CDataProvider
getItemCount() Возвращает количество элементов данных на текущей странице. CDataProvider
getKeys() Возвращает значения ключей, связанные с элементами данных. CDataProvider
getPagination() Возвращает объект постраничной навигации. CDataProvider
getSort() Возвращает объект сортировки. CActiveDataProvider
getTotalItemCount() Возвращает общее количество элементов данных. CDataProvider
hasEvent() Определяет, определено ли событие. CComponent
hasEventHandler() Проверяет, есть ли присоединенные обработчики для указанного события. CComponent
hasProperty() Определяет, определено ли свойство. CComponent
raiseEvent() Вызывает событие. CComponent
setCountCriteria() Устанавливает критерии запроса подсчета. CActiveDataProvider
setCriteria() Устанавливает критерии запроса. CActiveDataProvider
setData() Устанавливает элементы данных для этого поставщика. CDataProvider
setId() Устанавливает идентификатор поставщика. CDataProvider
setKeys() Устанавливает ключи элементов данных для этого поставщика. CDataProvider
setPagination() Устанавливает постраничную навигацию для этого поставщика данных. CDataProvider
setSort() Устанавливает сортировку для этого поставщика данных. CDataProvider
setTotalItemCount() Устанавливает общее количество элементов данных. CDataProvider

Защищенные методы

Метод Описание Определено в
calculateTotalItemCount() Вычисляет общее количество элементов данных. CActiveDataProvider
fetchData() Извлекает данные из постоянного хранилища данных. CActiveDataProvider
fetchKeys() Извлекает ключи элементов данных из постоянного хранилища данных. CActiveDataProvider
getModel() Возвращает новый экземпляр модели по имени класса активной записи. CActiveDataProvider

Подробное описание свойств

countCriteria свойство (доступно с версии v1.1.14)

public CDbCriteria getCountCriteria()
public void setCountCriteria(CDbCriteria|array $value)

Возвращает критерии запроса подсчета.

criteria свойство

public CDbCriteria getCriteria()
public void setCriteria(CDbCriteria|array $value)

Возвращает критерии запроса.

keyAttribute свойство

public string $keyAttribute;

Имя атрибута ключа для modelClass. Если не задано, используется первичный ключ соответствующей таблицы базы данных.

model свойство (доступно с версии v1.1.3)

public CActiveRecord $model;

экземпляр нахождения AR (например, Post::model()). Это свойство можно установить, передав экземпляр нахождения в качестве первого параметра конструктору. Например, Post::model()->published().

modelClass свойство

public string $modelClass;

имя первичного класса ActiveRecord. Метод getData() вернет список объектов этого класса.

sort свойство

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

Возвращает объект сортировки.

Подробное описание методов

__construct() метод

public void __construct(mixed $modelClass, array $config=array ( ))
$modelClass mixed класс модели (например, 'Post') или экземпляр поиска модели (например, Post::model(), Post::model()->published()).
$config array конфигурация (имя=>значение), которая будет применена в качестве начальных значений свойств этого класса.
Исходный код: framework/web/CActiveDataProvider.php#82 (показать)
public function __construct($modelClass,$config=array())
{
    if(
is_string($modelClass))
    {
        
$this->modelClass=$modelClass;
        
$this->model=$this->getModel($this->modelClass);
    }
    elseif(
$modelClass instanceof CActiveRecord)
    {
        
$this->modelClass=get_class($modelClass);
        
$this->model=$modelClass;
    }
    
$this->setId(CHtml::modelName($this->model));
    foreach(
$config as $key=>$value)
        
$this->$key=$value;
}

Конструктор.

calculateTotalItemCount() метод

protected integer calculateTotalItemCount()
{return} integer общее количество элементов данных.
Исходный код: framework/web/CActiveDataProvider.php#223 (показать)
protected function calculateTotalItemCount()
{
    
$baseCriteria=$this->model->getDbCriteria(false);
    if(
$baseCriteria!==null)
        
$baseCriteria=clone $baseCriteria;
    
$count=$this->model->count($this->getCountCriteria());
    
$this->model->setDbCriteria($baseCriteria);
    return 
$count;
}

Вычисляет общее количество элементов данных.

fetchData() метод

protected array fetchData()
{return} array список элементов данных
Исходный код: framework/web/CActiveDataProvider.php#172 (показать)
protected function fetchData()
{
    
$criteria=clone $this->getCriteria();

    if((
$pagination=$this->getPagination())!==false)
    {
        
$pagination->setItemCount($this->getTotalItemCount());
        
$pagination->applyLimit($criteria);
    }

    
$baseCriteria=$this->model->getDbCriteria(false);

    if((
$sort=$this->getSort())!==false)
    {
        
// set model criteria so that CSort can use its table alias setting
        
if($baseCriteria!==null)
        {
            
$c=clone $baseCriteria;
            
$c->mergeWith($criteria);
            
$this->model->setDbCriteria($c);
        }
        else
            
$this->model->setDbCriteria($criteria);
        
$sort->applyOrder($criteria);
    }

    
$this->model->setDbCriteria($baseCriteria!==null ? clone $baseCriteria : null);
    
$data=$this->model->findAll($criteria);
    
$this->model->setDbCriteria($baseCriteria);  // restore original criteria
    
return $data;
}

Извлекает данные из постоянного хранилища данных.

fetchKeys() метод

protected array fetchKeys()
{return} array список ключей элементов данных.
Исходный код: framework/web/CActiveDataProvider.php#208 (показать)
protected function fetchKeys()
{
    
$keys=array();
    foreach(
$this->getData() as $i=>$data)
    {
        
$key=$this->keyAttribute===null ? $data->getPrimaryKey() : $data->{$this->keyAttribute};
        
$keys[$i]=is_array($key) ? implode(',',$key) : $key;
    }
    return 
$keys;
}

Извлекает ключи элементов данных из постоянного хранилища данных.

getCountCriteria() метод (доступен с версии v1.1.14)

public CDbCriteria getCountCriteria()
{return} CDbCriteria критерии запроса для подсчёта.
Исходный код: framework/web/CActiveDataProvider.php#125 (показать)
public function getCountCriteria()
{
    if(
$this->_countCriteria===null)
        return 
$this->getCriteria();
    return 
$this->_countCriteria;
}

Возвращает критерии запроса для подсчёта.

getCriteria() метод

public CDbCriteria getCriteria()
{return} CDbCriteria критерии запроса.
Исходный код: framework/web/CActiveDataProvider.php#103 (показать)
public function getCriteria()
{
    if(
$this->_criteria===null)
        
$this->_criteria=new CDbCriteria;
    return 
$this->_criteria;
}

Возвращает критерии запроса.

getModel() метод (доступен с версии v1.1.14)

protected CActiveRecord getModel(string $className)
$className string имя класса активной записи.
{return} CActiveRecord экземпляр модели активной записи.
Исходный код: framework/web/CActiveDataProvider.php#163 (показать)
protected function getModel($className)
{
    return 
CActiveRecord::model($className);
}

Возвращает новый экземпляр модели на основе имени класса активной записи.

getSort() метод

public CSort getSort(string $className='CSort')
$className string имя класса объекта сортировки. Параметр доступен с версии 1.1.13.
{return} CSort объект сортировки. Если это false, значит сортировка отключена.
Исходный код: framework/web/CActiveDataProvider.php#148 (показать)
public function getSort($className='CSort')
{
    if((
$sort=parent::getSort($className))!==false)
        
$sort->modelClass=$this->modelClass;
    return 
$sort;
}

Возвращает объект сортировки.

setCountCriteria() метод (доступен с версии v1.1.14)

public void setCountCriteria(CDbCriteria|array $value)
$value CDbCriteria|array критерии запроса для подсчёта. Может быть объектом CDbCriteria или массивом, представляющим критерии запроса.
Исходный код: framework/web/CActiveDataProvider.php#138 (показать)
public function setCountCriteria($value)
{
    
$this->_countCriteria=$value instanceof CDbCriteria ? $value : new CDbCriteria($value);
}

Устанавливает критерии запроса для подсчёта.

setCriteria() метод

public void setCriteria(CDbCriteria|array $value)
$value CDbCriteria|array критерии запроса. Может быть объектом CDbCriteria или массивом, представляющим критерии запроса.
Исходный код: framework/web/CActiveDataProvider.php#115 (показать)
public function setCriteria($value)
{
    
$this->_criteria=$value instanceof CDbCriteria ? $value : new CDbCriteria($value);
}

Устанавливает критерии запроса.

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API