Я пытаюсь сделать pagination выполнимым в моем веб-приложении. Но, похоже, не дает мне правильного номера для свойств totalCount. Мой кодYii 2 pagination не работает должным образом
это-$find_query = "SELECT * FROM business WHERE status='Enabled' ";
$query = Business::findBySql($find_query);
//$query = Business::find()->where(['status' => 'Enabled']);
$countQuery = clone $query;
$pages = new Pagination(['totalCount' => $countQuery->count(), 'defaultPageSize' => 10]);
$data_rows = $query->offset($pages->offset)
->limit($pages->limit)
->all();
Из выше коды, если я использую объект с findBySql(), то это дает мне нужное количество строк, но тогда количество строк не соответствует с $ pages-> значением TOTALCOUNT. totalCount дает мне другое число, отличное от номера строки результата.
Если используется комментированный объект с помощью find(), то он дает мне то же число строк для $ pages-> totalCount и $ data_rows.
Что мне нужно обновить здесь, чтобы убедиться, что findBySql() работает должным образом?
Мне нужно использовать findBySql(), потому что мой SQL немного сложный, который содержит несколько операций объединения.
Заранее спасибо ..
Спасибо. Да, я уже так пробовал. Но мой вопрос в том, почему totalCount не дает мне правильное число из $ pages = new Pagination (['totalCount' => $ countQuery-> count(), 'defaultPageSize' => 10]); – user3273871
@ user3273871 Я отредактировал мой ответ –
Pagination не работает с использованием $ query = Business :: findBySql ($ find_query); – user3273871