当前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
答案 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;);