Я следую 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+ .