/** * @param \yii\db\ActiveRecordInterface|\yii2tech\ar\position\PositionBehavior $model * @param $position * @throws BadRequestHttpException */ protected function positionModel($model, $position) { switch (strtolower($position)) { case 'up': case 'prev': $model->movePrev(); break; case 'down': case 'next': $model->moveNext(); break; case 'top': case 'first': $model->moveFirst(); break; case 'bottom': case 'last': $model->moveLast(); break; default: if (is_numeric($position)) { $model->moveToPosition($position); } else { throw new BadRequestHttpException(Yii::t('yii', '{attribute} is invalid.', ['attribute' => $this->positionParam])); } } }