Я пытаюсь экспортировать свою GridView в формате PDF, не повезло :(Это часть моего кода контроллера:Yii2 экспорт GridView в формате PDF с пользовательского шаблона и отфильтрованные данные
class LntTripsController extends Controller
{
protected $repquery; // my only idea is to pass query parameters via global variable
.................
public function actionIndex()
{
$searchModel = new LntTripsSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
$this->repquery = Yii::$app->request->queryParams; // save request here
return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
]);
}
.............
//Here I do export with custom template:
public function actionReport() {
$searchModel = new LntTripsSearch();
$dataProvider = $searchModel->search($this->repquery); //restore request here
$content = $this->render('report', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
]);
$pdf = Yii::$app->pdf;
$mpdf = $pdf->api;
$mpdf->WriteHtml($content);
return $pdf->render();
}
}
Функция actionIndex()
работы хорошо, но actionReport()
всегда печатает полную таблицу, даже если она была отфильтрованной в actionIndex()
. Variable $this->repquery
всегда NULL
в actionReport()
.
но LntTripsSearch также недавно создан в actionReport() тот же самый звук потери данных. может быть, есть другой способ передать данные между действиями? –
Вы можете передавать данные между действием, но не таким образом. Вы хотите сохранить запросParam и после его получения. для этого вы можете использовать сеанс .. – scaisEdge
Как вы называете отчет? .. если вы называете отчет, который знаете или можете знать запросParam, вы можете вызвать отчет, передающий это значение. – scaisEdge