public function actionMyaction($id)
{
...
$model = $this->findModel($id);
$files = new Files();
...
return $this->render('Myaction', [
'model' => $model,
'files' => $files
]);
/************/
<?= $form->field($files, 'filename')->textInput([
'value' => $model->file ? $model->file->filename : ''
]); ?>
Yii::$app->responce->sendFile('path/to/file');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . 'enelope.pdf');
exit($pdf->Output('', 'S')); // работает не коорректно, не переводит на нужную страницу
Но Вы предлагаете ещё больший костыль, гораздо костыльней)))
То что Вы делаете публичное свойство $variable(название, кстати, костыльное) - верно, но всё остальное нет.
Если хотите без костылей, то делайте отдельно модель для формы, желательно одну для create, вторую для update.
В действии контроллера передаёте данные с формы в класс, который будет создавать или изменять экземпляр модели и сохранять.
Вот тогда будет не костыльно, а очень даже приличный код, легко расширяемый и поддерживаемый)))