Есть экшен
public function actionIndexsearch()
{
//заполняем данные из запроса
$params = Yii::$app->getRequest()->get();
//получаем id гитар соответствующих фильтру
$guitars = Bdguitar::filterguitars($params);
$guitarsid = ArrayHelper::map($guitars,'id','id');
//поиск по объявлениям
$boardsearch = Board::find();
if(isset($params['bu']))
{
$boardsearch->andWhere(['bu'=>$params['bu']]);
}
if(isset($params['sity']))
{
$boardsearch->andWhere(['sity'=>$params['sity']]);
}
if(isset($params['cenamin']) AND isset($params['cenamax']))
{
$max = $params['cenamax'];
$min = $params['cenamin'];
$boardsearch->andWhere(['<','price',$max]);
$boardsearch->andWhere(['>','price',$min]);
}
$boardsearch->andWhere(['idinbd'=>array_values($guitarsid)]);
//вывод
$pages = new Pagination(['totalCount' => $boardsearch->count(), 'pageSize'=>24]);
$models = $boardsearch->offset($pages->offset)
->limit($pages->limit)
->all();
if(Yii::$app->getRequest()->isAjax)
{
$ajax = $boardsearch->count();
return $ajax;
}else{
return $this->render('index', [
'model' => $models,
'pages' => $pages
]);
}
}
Проблема тут (если убираю проблема уходит, но почему):
if(isset($params['cenamin']) AND isset($params['cenamax']))
{
$max = $params['cenamax'];
$min = $params['cenamin'];
$boardsearch->andWhere(['<','price',$max]);
$boardsearch->andWhere(['>','price',$min]);
}
Изначально делал через between, та же ошибка:
exception 'yii\base\ErrorException' with message 'Undefined offset: 1' in /var/www/user15354/data/www/prodamgitaru.ru/vendor/yiisoft/yii2/db/Command.php:271
Stack trace:
#0 /var/www/user15354/data/www/prodamgitaru.ru/vendor/yiisoft/yii2/db/Command.php(271): yii\base\ErrorHandler->handleError(8, 'Undefined offse...', '/var/www/user15...', 271, Array)
#1 /var/www/user15354/data/www/prodamgitaru.ru/vendor/yiisoft/yii2/db/Command.php(215): yii\db\Command->bindPendingParams()
#2 /var/www/user15354/data/www/prodamgitaru.ru/vendor/yiisoft/yii2/db/Command.php(815): yii\db\Command->prepare(true)
и т.д.
Самое интересное, что $boardsearch->andWhere(['<','price',5000]); работает, а добавляю больше чего-то - ошибка.
Можете посмотреть ошибку тут:
prodamgitaru.ru/indexsearch?cenamax%5B%5D=833&cena...
Не могу понять ее суть. Очень нужна помощь. Второй день рою google