В Yii зачем использовать CActiveDataProvider вместо Post::model()->findAll()?

Я вижу CActiveDataProvider используется в контроллере actionIndex() функция.

Есть ли разница между использованием этого вместо просто Post::model()->findAll()?

1 ответ

Решение

CActiveDataProvider это обертка для CActiveRecord с расширенными возможностями sorting, pagination а также filtering, типично CActiveDataProvider используется в сочетании с zii виджеты как CListView или же CGridView которые используют его сортировку и возможности поиска. Поэтому, если вы хотите отображать данные в виде списка или таблицы с (необязательно) сортировкой / фильтрацией / разбиением на страницы - наиболее удобный способ сделать это в Yii - использовать описанные виджеты zii или их расширения.

Если вам просто нужно извлечь данные и использовать их любым другим способом, но без интеллектуальных механизмов рендеринга, предоставляемых CListView или же CGridView - использовать CActiveRecordпотому что он не выполняет ничего, кроме выборки данных.

ссылка

Другие вопросы по тегам