我在yii2中有这个错误。
Invalid argument supplied for foreach()
我的观点无法看到我的第二个模型我使用渲染功能;
在我看来,我使用的模型就像
一样<?= $form->field($images, 'imagesFiles[]')->fileInput(['multiple' => true, 'accept' => 'image/*','id'=>'gallery-photo-add'])->label(false) ?>
并将该模型放在控制器索引操作中:
public function actionIndex()
{
$model = new Form();
$images = new Images();
return $this->render('form',array(
'model' => $model,'images' => $images
));
}
但在我看来,我从PHPStorm提示: 未定义的变量'images' 我有那个导致错误的foreach
public function upload($model){
$model->imagesFiles = UploadedFile::getInstances($model,'imagesFiles');
foreach($model->imagesFiles as $file){
$folder = ('uploads/' . $file->baseName . '.' . $file->extension);
$file->saveAs('uploads/' . $file->baseName . '.' . $file->extension);
$model->image_1.=$folder . ';';
}
return $model->save(false);
}
答案 0 :(得分:1)
仅当您在视图文件中描述它时,PhpStorm才会看到您的变量:
<?php
use foo\Images;
/* @var Images $images */
// $images is defined for PhpStorm
foreach()需要将对象或数组作为参数,只需输入
即可var_dump($images)
在foreach调用之前检查变量类型。