How to start an export programmatically

I have several views with DynaGrid and ExportMenu. I need every day to save all the exports to an archive as CSV files. I do not know, how to start a new export (which is defined in a DynaGrid) from a controller.

I have found the following possible solutions, but none of them is optimal:

  • I can define the exports in corresponding models and then realise the exports through actions in controllers, like in this example. But then I have to define the same export twice and I risk, that there will be differences between the two exports.

  • I can use the Codeception and e.g. in the frame of an acceptance test to simulate a click on the export menu. This solution is relative easy to implement, but I find it unstable.

  • I can also prepare links to the export files, so it will be easier to make the exports with Codeception. See:

<?= echo yii\helpers\Html::a('Export', ['controller/action'], [






            'exportFull_w0' => '1',

            'export_columns' => '0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20',

            'column_selector_enabled' => '1'



]) ?>

Is there something more straightforward? I need something like the extension UploadFromUrl, which enables to download files, like this:

$url = '' ;

$path = 'uploads/yii.png';

$file = UploadFromUrl::initWithUrl($url);


But it does not enable to use post parameters and urls from the current Yii-application.

The solution is described on the StackOverflow.