Доброго времени суток!
Ребят, помогите, сбит с толку.
в общем есть 2 таблицы:
Товары (название, фото и т.д)
Остатки (цены, в каких магазинах есть и т.д)
Эти таблицы связаны, т.е на сайте вывожу продукт и его остатки.
А еще есть возможность выбрать магазин (и продукция на сайте выводится из этого магазина) храню id магазина в сессиях и при наличии сессии добавляю условие where().
Вывод такой:
Product::find()->joinWith('ostatki')->where(['ostatki.id' => $id])->orderBy(['ostatki.price' => SORT_ASC])->all();
Но почему то цены не верно сортируются (они такого вида: 1523.52, 52.5, 52.05 и т.д). И пагинация на сайте не правильно работает. PageSize указал 15, но выводит рандомно 5-6-1-2 и т.д.
Код:
$view = Yii::$app->request->get('view');
$sort_value = (int) Yii::$app->request->get('sort_value');
$pharm = Yii::$app->session;
$pharm->open();
if (isset($pharm['pid'])) {
$pharm_id = $pharm['pid'];
$pharms = Pharmacy::find()
->where(['pharm_id' => $pharm_id])
->limit(1)
->one();
}
if (!empty($pharms)) {
$query = Product::find()
->joinWith('tailing')
->where(['tailings.pharm_id' => $pharm_id]);
} else {
$query = Product::find()->joinWith('tailing');
}
if (!empty($sort_value)) {
if ($sort_value === 1) {
$query->orderBy(['tailings.price' => SORT_ASC]);
} elseif ($sort_value === 2) {
$query->orderBy(['tailings.price' => SORT_DESC]);
} elseif ($sort_value === 3) {
$query->orderBy(['name_medication' => SORT_ASC]);
} elseif ($sort_value === 4) {
$query->orderBy(['name_medication' => SORT_DESC]);
}
}
$pages = new Pagination([
'totalCount' => $query->count(),
'pageSize' => 15,
'forcePageParam' => false,
'pageSizeParam' => false,
]);
$medicines = $query->offset($pages->offset)->limit($pages->limit)->all();
return $this->render('index', [
'medicines' => $medicines,
'pages' => $pages
]);