VitalyLiber
@VitalyLiber
web-developer

Как реализовать вывод данных виджетом yii2 LinkPager по определенному критерию?

Имеется виджет LinkPager и Yii2. Виджет выводит несколько записей на странице. Остальные пагинирует.

Как сделать так, чтобы он выводил записи только с выбранным критерием?

Например, по заполненному полю "publication"? Если значение 1, то выводит. Если значения нет, то не выводит.
  • Вопрос задан
  • 1496 просмотров
Решения вопроса 1
VitalyLiber
@VitalyLiber Автор вопроса
web-developer
Изначально код пагинатора в контроллере был такой:
public function actionIndex()
    {

        $query = Orders::find();

        $pagination = new Pagination([
            'defaultPageSize' => 5,
            'totalCount' => $query->count(),
        ]);

        $orderies = $query->orderBy('id')
            ->offset($pagination->offset)
            ->limit($pagination->limit)
            ->all();

        return $this->render('index', [
            'orderies' => $orderies,
            'pagination' => $pagination,
        ]);
    }


Добавил в контроллер в строку
$query = Orders::find();

Такую строчку
->where(["active"=>1])

Получится такая строка

$query = Orders::find()->where(["active"=>1]);

Потом во всех моделях добавил active. Добавил в базу данных столбец active.

Теперь при значении 0, которое записывается в базу данных при отправке, запись в пагинацию не попадает. Если поменять в CRUD редакторе на единицу, то выводится.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Alzasr
Одним из параметров виджета LinkPager является DataProvider, в контролере (если ты пользовался Gii) он создается как $dataProvider = $searchModel->search(Yii::$app->request->queryParams); можешь добавить свои условия.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы