Как исправить ошибку «Вызов функции-члена offset () on array» в моем проекте yii2 - PullRequest
0 голосов
/ 16 января 2019

Я хочу установить нумерацию страниц на своей странице блогов. До нумерации страниц это действие работает.

    $data = [];
    $query = Blog::find()->where(['status'=>1])->multilingual()->orderBy(['id'=>SORT_DESC])->all();


   $count = count($query);


    $pagination = new Pagination(['totalCount' => $count]);

    // limit the query using the pagination and retrieve the articles
    $data['blog'] = $query->offset($pagination->offset)->limit($pagination->limit)->all();


    return $this->render('blog-list',['data'=>$data, 'pagination'=>$pagination]);

Всякий раз, когда я устанавливал PageSize, проблема еще не решалась.

Ответы [ 2 ]

0 голосов
/ 16 января 2019

У вас ошибка, потому что переменная $query содержит массив записей вместо объекта запроса. Если вы хотите изменить запрос, вы можете оставить его.

$query = Blog::find()->where(['status'=>1])->multilingual();

$count = $query->count();
$pagination = new Pagination(['totalCount' => $count]);

// limit the query using the pagination and retrieve the articles
$data['blog'] = $query->orderBy(['id'=>SORT_DESC])->offset($pagination->offset)->limit($pagination->limit)->all();


return $this->render('blog-list',['data'=>$data, 'pagination'=>$pagination]);
0 голосов
/ 16 января 2019

Удалить all()

$query = Blog::find()->where(['status'=>1])->multilingual()->orderBy(['id'=>SORT_DESC]);

$totalCount = clone $query;
$pagination = new Pagination(['totalCount' => count($totalCount->all())]);
...