isset或empty中的非法偏移类型

时间:2017-08-29 06:40:04

标签: yii yii2 yii2-advanced-app

当前PHP版本:7.1.7

请帮帮我,我有这个问题

  

isset中的非法偏移类型或第113行为空

我决定将文件上传到我的网站后出现此问题

在C:\ xampp \ htdocs \ archive \ vendor \ yiisoft \ yii2 \ web \ UploadedFile.php中 第113行:

 public static function getInstanceByName($name)
{
    $files = self::loadFiles();
    return isset($files[$name]) ? new static($files[$name]) : null;
}

和伙计,如果这不清楚,请问我更多解释和谢谢

此代码在模型中

[['file'],'file'],
  • 控制器中的这段代码

                $docfileload = $model->docname;
            $model->file = UploadedFile::getinstancebyname($model,'file');
            $model->file->saveAs('uploads/'.$docfileload.'.'.$model->file->extension);
            $model->save();
    
            //save path in db
            $model->docfile = 'uploads/'.$docfileload.'.'.$model->file->extension;
    

_form

中的这段代码
    <?= $form->field($model,'file')->fileinput(); ?>

首先我使用了getInstance()但是重新获得了getInstanceByName()因为这里有问题

error yii2 upload Call to a member function saveAs() on null

2 个答案:

答案 0 :(得分:1)

当您尝试使用对象或数组作为索引键来访问数组索引时,会发生非法的偏移类型错误。

您的函数定义为getInstanceByName($ name),但您使用getinstancebyname($ model,&#39; file&#39;)

调用它

那里出了点问题

答案 1 :(得分:0)

首先我用过  $ model-&gt; file = UploadedFile :: getinstancebyname($ model,&#39; file&#39;);

但是正确的是使用  $ model-&gt; file = UploadedFile :: getinstance($ model,&#39; file&#39;);