как получить доступ к данным вида сетки Yii2 - PullRequest
0 голосов
/ 21 января 2020

В моем приложении реализован вид сетки yii2, и мне нужно передать выбранный вывод вида сетки на принтер pdf при печати в виде отчета, когда я нажимаю кнопку печати. Я понятия не имею, как я могу получить доступ к набору результатов вида сетки и передать его в действие моего контроллера

Я использую расширение kartik mpdf для генерации PDF

https://imgur.com/a/cGGt968

когда я нажимаю кнопку печати, мне нужно получить данные в виде сетки и передать их в расширение mpdf.

часть моего файла вида

<h5>Details of Education Qualification</h5>
<?php
echo Html::a('<i class="fa far fa-hand-point-up"></i> Print', ['/pdfrpt/report'], [
    'class'=>'btn btn-danger', 
    'target'=>'_blank', 
    'data-toggle'=>'tooltip', 
    'title'=>'Will open the generated PDF file in a new window'
]);
?>

<?php Pjax::begin(); ?>
    <?php // echo $this->render('_search', ['model' => $searchModel]); ?>
    <?= GridView::widget([
        'dataProvider' => $dataProvider,
        'filterModel' => $searchModel,
        'columns' => [
            ['class' => 'yii\grid\SerialColumn'],

        'EmpNo',
        ['attribute'=> 'nameWithInitial',
          'label' => 'Name',
            'value' =>'empNo.nameWithInitial',],

и вот как я называю pdf (действие отчета в контроллере pdfrpt)

     public function actionReport() {
        Yii::$app->response->format = \yii\web\Response::FORMAT_RAW;
        $pdf = new Pdf([
            'mode' => Pdf::MODE_CORE, 
            'destination' => Pdf::DEST_BROWSER,
            'content' => $this->renderPartial('test'),// here  I need to specify current grid view data
            'options' => [

            ],
            'methods' => [
                'SetTitle' => 'Report title',
                'SetSubject' => 'Generating PDF files via yii2-mpdf extension has never been easy',
                'SetHeader' => ['report title||Generated On: ' . date("r")],
                'SetFooter' => ['|Page {PAGENO}|'],
                'SetAuthor' => '',
                'SetCreator' => '',
                'SetKeywords' => ' ',
            ]
        ]);
        return $pdf->render();
    }

1 Ответ

0 голосов
/ 21 января 2020

Вы используете ложное разбиение на страницы, иначе оно даст данные для первой страницы.

  // create the data provider by configuring its pagination and sort properties
    $provider = new XyzDataProvider([
        'pagination' => [...],
        'sort' => [...],
    ]);

    // retrieves paginated and sorted data
    $models = $provider->getModels();

    // get the number of data items in the current page
    $count = $provider->getCount();

    // get the total number of data items across all pages
    $totalCount = $provider->getTotalCount();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...