Hi, I’m trying to upload multiple files, but I always get “Trying to get property of non-object”
This is my controller code:
public function actionCreate()
{
$model = new Property;
if ($model->load(Yii::$app->request->post())) {
$images = \yii\web\UploadedFile::getInstance($model, 'image');
if (isset($images) && count($images) > 0) {
foreach ($images as $image => $pic) {
echo $pic->name.'<br />';
$ext = end((explode(".", $pic->name)));
$pic->name = Security::generateRandomKey().".{$ext}";
if ($pic->saveAs(Yii::getAlias('@imagenesInmuebles').'/'.$model->id.'/'.$pic->name)) {
$pic_add = new \app\models\PropertyPictures;
$pic_add->filename = $pic->name;
$pic_add->property_id = $model->id;
$pic_add->save();
} else {
echo 'Error al cargar imágenes';
}
}
}
if ($model->save()){
return $this->redirect(['view', 'id'=>$model->id]);
}
} else {
return $this->render('create', [
'model' => $model,
]);
}
}
I get the error in the
echo $pic->name.'<br />';
line.
The $_FILES has this output in the error page.
$_FILES = array (
'Property' =>
array (
'name' =>
array (
'image' => 'entrada.jpg',
),
'type' =>
array (
'image' => 'image/jpeg',
),
'tmp_name' =>
array (
'image' => 'C:\\xampp\\tmp\\phpCB26.tmp',
),
'error' =>
array (
'image' => 0,
),
'size' =>
array (
'image' => 295557,
),
),
);
Any help would be really appreciated.
Thank you.