В 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
потому что он не выполняет ничего, кроме выборки данных.