Je suis en train d'exporter mon gridview en pdf sans chance :(C'est une partie de mon code de commande:Yii2 gridview export au format PDF avec le modèle personnalisé et des données filtrées
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();
}
}
La fonction actionIndex()
travaux bien, mais actionReport()
toujours imprime le tableau complet, même quand il a été filtré actionIndex()
. variable $this->repquery
toujours NULL
dans actionReport()
.
mais LntTripsSearch est également nouvellement créé dans actionReport() même perte de données entendre. peut-être il existe un autre moyen de transmettre des données entre les actions? –
Vous pouvez passer des données entre les actions mais pas de cette façon .. vous voulez stocker le queryParam et après retomber cette valeur.,. pour cela vous pouvez utiliser la session .. – scaisEdge
Comment appelez-vous le rapport? .. si vous appelez le rapport que vous connaissez ou pouvez connaître le queryParam, vous pouvez appeler le rapport en passant cette valeur .. – scaisEdge