Не понимаю, на что ругается??

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
an.viktory@gmail.com
Сообщения: 536
Зарегистрирован: 2016.09.05, 23:21

Не понимаю, на что ругается??

Сообщение an.viktory@gmail.com »

Код: Выделить всё

use yii\data\Pagination;

class PostController extends Controller
{
    public function actionIndex()
    {
      /*   $posts = Post::find()->select('id,address,roomsCount,description,price')->all(); */
        
        $query = Post::find()->select('id,address,roomsCount,description,price')->all();
        
        $pages = new Pagination(['totalCount' => count($query),'pageSize' => 2]);
        
        
        $posts = $query->offset($pages->offset)
        ->limit($pages->limit)
        ->all();
        
        
    return $this->render('index',compact('posts, pages'));
    } 


Пишет
PHP Fatal Error – yii\base\ErrorException

Call to a member function offset() on a non-object
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Не понимаю, на что ругается??

Сообщение zelenin »

Call to a member function offset() on a non-object
перевожу: вызов функции оффсет на не-объекте.

Смотрим, где вы вызываете offset() - $posts = $query->offset(...) - соттветственно тут $query у вас не объект. А что? смотрим выше: $query = Post::find()->...->all(); - массив объектов Post. Логично? Логично. Еще вопросы Капитану Очевидность?
an.viktory@gmail.com
Сообщения: 536
Зарегистрирован: 2016.09.05, 23:21

Re: Не понимаю, на что ругается??

Сообщение an.viktory@gmail.com »

И так мне сделать чтобы получить магинацию ?
Onotole
Сообщения: 1808
Зарегистрирован: 2012.12.24, 12:49

Re: Не понимаю, на что ругается??

Сообщение Onotole »

an.viktory@gmail.com писал(а):И так мне сделать чтобы получить магинацию ?
Почитать диокументацию
an.viktory@gmail.com
Сообщения: 536
Зарегистрирован: 2016.09.05, 23:21

Re: Не понимаю, на что ругается??

Сообщение an.viktory@gmail.com »

пол дня читаю не понимаю
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Не понимаю, на что ругается??

Сообщение zelenin »

an.viktory@gmail.com писал(а):пол дня читаю не понимаю
странно
an.viktory@gmail.com
Сообщения: 536
Зарегистрирован: 2016.09.05, 23:21

Re: Не понимаю, на что ругается??

Сообщение an.viktory@gmail.com »

все делаю как в документации и по видео символ в символ)
an.viktory@gmail.com
Сообщения: 536
Зарегистрирован: 2016.09.05, 23:21

Re: Не понимаю, на что ругается??

Сообщение an.viktory@gmail.com »

объясните близ где закралась ошибка что мне сделать надо ?????????
Onotole
Сообщения: 1808
Зарегистрирован: 2012.12.24, 12:49

Re: Не понимаю, на что ругается??

Сообщение Onotole »

an.viktory@gmail.com писал(а):все делаю как в документации и по видео символ в символ)
Прям таки символ в символ?
https://github.com/yiisoft/yii2/blob/ma ... ination.md
Аватара пользователя
girmate
Сообщения: 1534
Зарегистрирован: 2015.10.27, 12:52

Re: Не понимаю, на что ругается??

Сообщение girmate »

Попробуйте убрать ->all() в запросе, том что приходит в переменную $query.
Осторожно! Вы общаетесь с новичком ;)
Onotole
Сообщения: 1808
Зарегистрирован: 2012.12.24, 12:49

Re: Не понимаю, на что ругается??

Сообщение Onotole »

girmate писал(а):Попробуйте убрать ->all() в запросе, том что приходит в переменную $query.
Зачем?
Аватара пользователя
girmate
Сообщения: 1534
Зарегистрирован: 2015.10.27, 12:52

Re: Не понимаю, на что ругается??

Сообщение girmate »

Ну там же вроде как просто query должен быть, то есть сам запрос, а не полная выборка.
Последний раз редактировалось girmate 2016.09.22, 22:24, всего редактировалось 1 раз.
Осторожно! Вы общаетесь с новичком ;)
Onotole
Сообщения: 1808
Зарегистрирован: 2012.12.24, 12:49

Re: Не понимаю, на что ругается??

Сообщение Onotole »

girmate писал(а):Ну там же вроде как просто query должен быть.
Видимо ссылки мало...

Код: Выделить всё

function actionIndex()
{
    $query = Article::find()->where(['status' => 1]);
    $countQuery = clone $query;
    $pages = new Pagination(['totalCount' => $countQuery->count()]);
    $models = $query->offset($pages->offset)
        ->limit($pages->limit)
        ->all();

    return $this->render('index', [
         'models' => $models,
         'pages' => $pages,
    ]);
} 
Аватара пользователя
girmate
Сообщения: 1534
Зарегистрирован: 2015.10.27, 12:52

Re: Не понимаю, на что ругается??

Сообщение girmate »

Onotole писал(а):
girmate писал(а):Ну там же вроде как просто query должен быть.
Видимо ссылки мало...

Код: Выделить всё

function actionIndex()
{
    $query = Article::find()->where(['status' => 1]);
    $countQuery = clone $query;
    $pages = new Pagination(['totalCount' => $countQuery->count()]);
    $models = $query->offset($pages->offset)
        ->limit($pages->limit)
        ->all();

    return $this->render('index', [
         'models' => $models,
         'pages' => $pages,
    ]);
} 
Ну а я что сказал?

Код: Выделить всё

$query = Post::find()->select('id,address,roomsCount,description,price');
вместо

Код: Выделить всё

$query = Post::find()->select('id,address,roomsCount,description,price')->all(); 
Осторожно! Вы общаетесь с новичком ;)
Onotole
Сообщения: 1808
Зарегистрирован: 2012.12.24, 12:49

Re: Не понимаю, на что ругается??

Сообщение Onotole »

Код: Выделить всё

$pages = new Pagination(['totalCount' => $countQuery->count()]); 
Аватара пользователя
girmate
Сообщения: 1534
Зарегистрирован: 2015.10.27, 12:52

Re: Не понимаю, на что ругается??

Сообщение girmate »

Ну понятно, что ошибка в этой строке. Туда попадает массив объектов, а не ActiveQuery. Или я что-то путаю?
Осторожно! Вы общаетесь с новичком ;)
Ответить