проблемы с пагинацей

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
kano2711
Сообщения: 1
Зарегистрирован: 2020.11.19, 23:06

проблемы с пагинацей

Сообщение kano2711 »

На странице установлены фильтры для таблицы, таблица формируется через sql запрос, при листании пагинации возвращаются пустую таблицу, хотя когда приписываю CVarDumper::dump в partial данные в провайдере есть. кто знает чего не хватает, или что не так указал?
controller

Код: Выделить всё

    public function actionUserQualityMark()
    {
        $this->setPageTitle("Оценка сервиса");
        $report = new StatisticForm();
        $report->datebegin = date("d.m.Y", strtotime("-1 day"));
        $report->params['mark'] = UserQualityMark::MARK_NEGATIVE;
        $report->params['search'] = '';
        $report->params['negative'] = -1;
        $report->attributes = Yii::app()->getRequest()->getParam(StatisticForm::class);
        $this->render('userQualityMarkBase', [ 'report' => $report ]);
    }
view

Код: Выделить всё

<?php
/**
 * @var StatisticController $this
 * @var StatisticForm $report
 * @var \application\models\statistics\UserQualityMarkStatistic $result
 * @var TbActiveForm $form
 * @var $loading_form
 * @var $error_form
 */

$form = $this->beginWidget('booster.widgets.TbActiveForm', [
    'id' => 'widget_user_quality_mark',
    'type' => 'inline',
    'enableClientValidation' => true,
    'enableAjaxValidation' => false,
    'clientOptions' => [ 'validateOnSubmit' => true ]
]);

echo CHtml::openTag('center');

    echo CHtml::openTag('div');

        echo $form->datePickerGroup($report, 'datebegin', [
            'labelOptions' => ['label' => 'Период отчета&nbsp;&nbsp;с:&nbsp;'],
            'prepend' => '<i class="glyphicon glyphicon-calendar"></i>',
            'widgetOptions' => [
                'htmlOptions' => [
                    'id' => 'datebegin',
                    'class' => 'input-small',
                    'placeholder' => 'ДД.ММ.ГГГГ'
                ]
            ]
        ]);

        echo $form->datePickerGroup($report, 'dateend', [
            'labelOptions' => ['label' => 'Период отчета&nbsp;&nbsp;с:&nbsp;'],
            'prepend' => '<i class="glyphicon glyphicon-calendar"></i>',
            'widgetOptions' => [
                'htmlOptions' => [
                    'id' => 'dateend',
                    'class' => 'input-small',
                    'placeholder' => 'ДД.ММ.ГГГГ'
                ]
            ]
        ]);

        echo $form->dropDownListGroup($report, "mid", [
            'labelOptions' => ['style' => 'font-weight: 700;'],
            'widgetOptions' => [
                'data' => [
                        -4 => 'Чат',
                        -3 => 'Документы',
                        -2 => 'Заполнение',
                        -1 => 'Сайт',
                        0 => 'Все'
                    ] + array_map(
                        function ($data) {
                            return $data['name'];
                        },
                        ManagersSchedule::getManagersList()
                    ),
                'htmlOptions' => ['prompt' => 'Выберите консультанта ...']
            ]
        ]);

        echo $form->dropDownListGroup($report, 'pid', [
            'widgetOptions' => [ 'data' => $report->getPartnerList()]
        ]);

    echo CHtml::closeTag('div');

    echo CHtml::openTag('div', [ 'style' => 'margin-top: 10px;']);

        echo 'Поиск по ID, телефон, почта, фамилии: ';
        echo $form->textField($report, 'params[search]', [
            'class'=>'find-id form-control',
//            'id'=>'findId',
            'style'=>'margin-right:10px'
        ]);

        echo $form->dropDownListGroup($report, 'params[mark]', [
            'widgetOptions' => [
                'data' => [ -1 => 'Выберите оценку ...' ] + UserQualityMark::getMark()
            ]
        ]);

        echo $form->dropDownListGroup($report, 'params[negative]', [
            'widgetOptions' => [
                'data' => [ -1 => 'Выберите причину негатива ...' ] + UserQualityMark::getNegativeList()
            ]
        ]);

        echo CHtml::submitButton('Обновить', ['id'=>'refresh', 'class' => 'btn btn-default']);

    CHtml::closeTag('div');

echo CHtml::closeTag('center');

$this->endWidget();

$mark = new \application\models\statistics\UserQualityMarkStatistic();
$mark->attributes = $report->attributes;

echo CHtml::openTag('div', ['id' => 'userQualityMark']);
$this->renderPartial('partial/_userQualityMark', [
    'result' => $mark,
    'dataProvider' => new CArrayDataProvider($mark->dataProvider(), [
        'pagination' => [ 'pageSize' => 10 ]
    ]),
    'widgetColumns' => $mark->widgetColumns()
]);
echo CHtml::closeTag('div');
partial

Код: Выделить всё

$this->widget('booster.widgets.TbExtendedGridView', [
    'id' => 'mark-grid',
    'type' => 'striped bordered condensed',
    'ajaxType' => 'POST',
    'ajaxUrl' =>  Yii::app()->createUrl(Yii::app()->getRequest()->requestUri),
    'beforeAjaxUpdate'=> 'function(id,options) { 
        var stf = {
            datebegin: jQuery("#datebegin").val(),
            dateend: jQuery("#dateend").val(),
            mid: jQuery("#StatisticForm_mid").val(),
            pid: jQuery("#StatisticForm_pid").val(),
            params: { 
                search: jQuery("#StatisticForm_params_search").val(),
                mark: jQuery("#application_models_statistics_UserQualityMarkStatistic_params_mark").val(),
                negative: jQuery("#application_models_statistics_UserQualityMarkStatistic_params_negative").val() 
            }
        };
        options.data = {
            "application_models_statistics_UserQualityMarkStatistic" :  stf, 
            "NCSRF" : "'.Yii::app()->request->getCsrfToken().'"
        }; }',
    'dataProvider' => $dataProvider,
    'columns' => $widgetColumns,
]);
Ответить