Hola que tal soy nueva en yii2, estoy trabajando en un sistema de egresos en el que requiero subir notas de compra, es decir imágenes.
Tengo un formulario llamado Egresos y ya funciona la parte de la subida de la imagen, se guarda tanto en la base de datos como en la carpeta del proyecto, el problema es que si quiero modificar, todos los datos cargan en el formulario excepto el campo donde debería estar la imagen y yo lo que quiero es que al momento de presionar Modificar la imagen actual se cargue en el formulario donde el usuario la remplaza y se guarda la nueva imagen.
El campo al que hago referencia es “descripcion”… Se que me hace falta algo en la función Update del Controlador pero nose como hacerle. Ayuda porfavor
En la vista tengo puesto:
[
‘attribute’=>‘descripcion’,
‘value’=> Yii::getAlias(’@notaImgUrl’) . ‘/’ . $model->descripcion,
‘format’=>[‘image’,[‘width’=> ‘100’, ‘height’=> ‘100’]]
]
En el controlador, en la función de crear:
public function actionCreate()
{
$model = new Egresos();
if ($model->load(Yii::$app->request->post())) {
$model->save();
$egresoId = $model->id_egreso;
$image = UploadedFile::getInstance($model, 'descripcion');
$imgName = 'nota_' . $egresoId . '.' .$image->getExtension();
$image->saveAs(Yii::getAlias('@notaImgPath') . '/' . $imgName); //Guardando en la carpeta del proyecto
$model->descripcion = $imgName; //Guardando en la base de datos
$model->save();
return $this->redirect(['view', 'id' => $model->id_egreso]);
} else {
return $this->render('create', [
'model' => $model,
]);
}
}
En common/config/params-local puse:
<?php Yii::setAlias('@notaImgPath', 'C:\wamp\www\atrio_egresos\images\notas\\'); Yii::setAlias('@notaImgUrl', 'http://localhost/atrio_egresos/images/notas'); return [ ];