@Mr_Romanov
FullStack WebDev

Yii2 GridView + sqldataprovider как сделать таблицу?

Господа! Добрый день.

Постигаю yii2, и столкнулся с проблемой что не могу найти ни одной нормальной документации где показан пример как данные из базы превратить в простую таблицу с фильтрацией с помощью гридвью.

В моем понимании надо сделать 2 модели, в одной данные из таблицы во второй правила фильтрации.
В контроллере прописать экшен который задаст входные? параметры в эти модели?
А так же создать вью с самим гридвью.

Но вот сколько не пробовал не получается и все тут!

Может кто объяснить на элементарном примере с таблицой из двух столбцов которую надо просто вывести на страницу с возможностью фильтрации?
  • Вопрос задан
  • 710 просмотров
Решения вопроса 1
@Mr_Romanov Автор вопроса
FullStack WebDev
Всем спасибо! Получилось таки :)

use yii\data\SqlDataProvider;

$count = Yii::$app->db->createCommand('SELECT COUNT(*) FROM clients')->queryScalar();

$provider = new SqlDataProvider([
'sql' => 'SELECT * FROM clients',
'totalCount' => $count,
'pagination' => [
'pageSize' => 10,
],
'sort' => [
'attributes' => [
'id',
'name',
'phone',
],
],
]);
$models = $provider->getModels();

echo GridView::widget([
'dataProvider'=> $provider,
'responsive'=>true,
'hover'=>true
]);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
slo_nik
@slo_nik Куратор тега Yii
Добрый день.
Используйте ActiveDataProvider() и сможете без проблем создать таблицу с фильтрацией.
GridView как раз принимает в параметр "dataProvider" результат работы ActiveDataProvider.
Ответ написан
Комментировать
qonand
@qonand
Software Engineer
Что-то не то Вы в документации смотрите. Вот простой пример с кучей кода о выводе и данных в таблице и фильтрации по ним
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы