Yii2 Экспорт меню только заголовок экспорта без целых данных - PullRequest
0 голосов
/ 15 апреля 2020

Я следую krajee demos инструкциям. Я уже реализую с другой страницей, и она прекрасно работает. Но когда я использую его для страницы поиска (да, я создал две страницы, одну для индекса и одну для поиска, которые содержат точно такой же, но другой запрос), он работает не очень хорошо и показывает только заголовок столбца. Мой контроллер:

public function actionSearch()
{   

    $model =  new Majors();
    $post = Yii::$app->request->post();
    $model->load($post);
    $univ_id = $model->univ_id;

    $univ = Universities::find()->where(['id'=>$univ_id])->one();
    $query =Requestloandetails::find()
        ->select('requestloandetails.*, 
        requestloans.form_data, requestloans.amount, 
        requestloans.loan_number,requestloans.created_at,
        requestloans.terms, confirmpaymentloan.amount')
        ->innerjoinWith(['requestLoan'])
        ->leftjoin('confirmpaymentloan', '`confirmpaymentloan`.`request_loan_detail_id` = `requestloandetails`.`request_loan_detail_id`')
        ->innerjoinWith('user')
        ->where(['=','users.univ_name',$univ->name]);
    $provider = new ActiveDataProvider([
        'query' => $query,
        'pagination' => false
    ]);
    // $prov1=$provider->getModels();
    // dd($prov1);
    return $this->render('search', [
        'data' => $provider,
        'query' => $query,
        'model' => $model
    ]);
}

Мой взгляд:

<?php
$gridColumns = [
    ['attribute'=>'first_name',
     'label'=>'Nama Lengkap',
     'value' => function($data){
          $first_name = $data->requestLoan->form_data;
          $name = json_decode($first_name,true);
          return $name['first_name']. ' '.$name['last_name'];
     }
    ],
    ['attribute'=>'Nama Universitas',
    'value' => function($data){
         $univ = $data->requestLoan->form_data;
         $univ_name = json_decode($univ,true);
         return $univ_name['univ_name'];
    }
   ],
    ['attribute'=>'Loan Number',
     'value' => function($data){
          $loan_number = $data->requestLoan->loan_number;
          return $loan_number;
     }
    ],
    ['attribute'=>'Amount',
    'label'=>'Full Amount',
     'value' => function($data){
         $form_data = json_decode($data->requestLoan->form_data,true);
         $amount = $form_data['amount'];
          return Helper::rupiahFormat($amount);
     }
    ],
    ['attribute'=>'terms',
    'label'=>'Term',
     'value' => function($data){
          return ($data->requestLoan->terms);
     }
    ],
    ['attribute'=>'Administrasi',
     'label'=>'Administrasi',
     'value' => function($data){
           $form_data = json_decode($data->requestLoan->form_data,true);
           $amount = $form_data['amount'];
          $result = 0.025*$amount;
          return Helper::rupiahFormat($result);
     }
    ],
    ['attribute'=>'Administrasi',
     'label'=>'Administrasi',
     'value' => function($data){
           $form_data = json_decode($data->requestLoan->form_data,true);
           $amount = $form_data['amount'];
           $term = $data->requestLoan->terms;
          $result = (0.025*$amount)/$term;
          return Helper::rupiahFormat($result);
     }
    ],
    ['attribute'=>'Amount Perbulan',
     'value' => function($data){
           $form_data = json_decode($data->requestLoan->form_data,true);
           $amt = $form_data['amount'];
           $term = $data->requestLoan->terms;
          $result = $amt/$term; 
          return Helper::rupiahFormat($result);
     }
    ],'interest',
    ['attribute'=>'Bunga Cicilan',
    'format'=>'raw',
     'value' => function($data){
         $total = $data->total;
         $amount = $data->requestLoan->amount;
         $result = $total-$amount;
         return  Helper::rupiahFormat($result);
     }
    ],
    ['attribute'=>'Bunga Cicilan Perbulan',
    'format'=>'raw',
     'value' => function($data){
         $total = $data->total;
         $amount = $data->requestLoan->amount;
         $term = $data->requestLoan->terms;
         $result = ($total-$amount)/$term;
         return  Helper::rupiahFormat($result);
     }
    ],
    ['attribute'=>'due_date',
    'label'=> 'Due Date'
   ],
   ['attribute'=>'Status Pembayaran',
    'format' => 'raw',
    'value' => function($data){
                if($data->paid == '0') 
                return Html::tag('p', Html::encode("Belum Bayar")) ;
                return Html::tag('p', Html::encode("Sudah Bayar")) ;
            }
    ],'dpd',

    ['attribute'=>'Total Pinjaman',
    'value' => function($data){
        return  Helper::rupiahFormat($data->total);
    }
    ]
];

// Renders a export dropdown menu
$date = date('Y-m-d H:i:s');
echo ExportMenu::widget([
    'dataProvider' => $data,
    'columns' => $gridColumns,
    'filename' => "Accounting&Finance_Report".$date,
    'pjaxContainerId' => 'kv-pjax-container',
    'showColumnSelector' => false,
    'dropdownOptions' => [
        'label' => 'Export All',
        'class' => 'btn btn-default'
    ],
    'exportConfig' => [ // set styling for your custom dropdown list items
        ExportMenu::FORMAT_HTML => false,
        ExportMenu::FORMAT_PDF => [
            'pdfConfig' => [
                'methods' => [
                    'SetTitle' => 'Edufund - Accounting Report',
                    'SetHeader' => ['Edufund Accounting Report||Generated On: '.date("Y-m-d h:i:s")],
                    'SetFooter' => ['|Page {PAGENO}|'],
                    ]
            ]
        ],
    ],
]) . "<hr>\n".
GridView::widget([
    'dataProvider' => $data,
    'columns' => $gridColumns
]);
?>

Вот результат (успех, но значение показывает только заголовок без значения, которое следовало) результат в Excel 2007+ .

...