Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
an.viktory@gmail.com
Сообщения: 536 Зарегистрирован: 2016.09.05, 23:21
Сообщение
an.viktory@gmail.com » 2016.09.21, 09:44
Код: Выделить всё
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
Сообщение
zelenin » 2016.09.21, 10:18
Call to a member function offset() on a non-object
перевожу: вызов функции оффсет на не-объекте.
Смотрим, где вы вызываете offset() - $posts = $query->offset(...) - соттветственно тут $query у вас не объект. А что? смотрим выше: $query = Post::find()->...->all(); - массив объектов Post. Логично? Логично. Еще вопросы Капитану Очевидность?
Onotole
Сообщения: 1808 Зарегистрирован: 2012.12.24, 12:49
Сообщение
Onotole » 2016.09.21, 12:17
an.viktory@gmail.com писал(а): И так мне сделать чтобы получить магинацию ?
Почитать диокументацию
zelenin
Сообщения: 10596 Зарегистрирован: 2013.04.20, 11:30
Сообщение
zelenin » 2016.09.21, 14:13
an.viktory@gmail.com писал(а): пол дня читаю не понимаю
странно
girmate
Сообщения: 1534 Зарегистрирован: 2015.10.27, 12:52
Сообщение
girmate » 2016.09.22, 22:02
Попробуйте убрать ->all() в запросе, том что приходит в переменную $query.
Осторожно! Вы общаетесь с новичком
Onotole
Сообщения: 1808 Зарегистрирован: 2012.12.24, 12:49
Сообщение
Onotole » 2016.09.22, 22:19
girmate писал(а): Попробуйте убрать ->all() в запросе, том что приходит в переменную $query.
Зачем?
girmate
Сообщения: 1534 Зарегистрирован: 2015.10.27, 12:52
Сообщение
girmate » 2016.09.22, 22:22
Ну там же вроде как просто query должен быть, то есть сам запрос, а не полная выборка.
Последний раз редактировалось
girmate 2016.09.22, 22:24, всего редактировалось 1 раз.
Осторожно! Вы общаетесь с новичком
Onotole
Сообщения: 1808 Зарегистрирован: 2012.12.24, 12:49
Сообщение
Onotole » 2016.09.22, 22:24
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
Сообщение
girmate » 2016.09.22, 22:25
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();
Осторожно! Вы общаетесь с новичком
girmate
Сообщения: 1534 Зарегистрирован: 2015.10.27, 12:52
Сообщение
girmate » 2016.09.22, 22:29
Ну понятно, что ошибка в этой строке. Туда попадает массив объектов, а не ActiveQuery. Или я что-то путаю?
Осторожно! Вы общаетесь с новичком