为foreach()错误提供的参数无效,无法在视图中找到第二个模型

时间:2017-03-06 09:32:58

标签: php yii2

我在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);
    }

1 个答案:

答案 0 :(得分:1)

仅当您在视图文件中描述它时,PhpStorm才会看到您的变量:

<?php

use foo\Images;

/* @var Images $images */

// $images is defined for PhpStorm

foreach()需要将对象或数组作为参数,只需输入

即可
var_dump($images)

在foreach调用之前检查变量类型。