2017-08-27 23 views
1

调用一个成员函数的saveAs()我是新程序员的世界,找你帮忙的家伙, 我有错误“在空调用一个成员函数的saveAs()”错误yii2上载空

此代码在模型

[['file'],'file'], 
  • 这个代码在控制器

      $docfileload = $model->docname; 
         $model->file = UploadedFile::getinstance($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(); ?> 

我用getInstanceByName后像@bluehipy告诉我,我有一个新的问题,着眼于PIC

enter image description here

回答

0

试试这个:

$model->file=UploadedFile::getInstance($model,'file'); 
    $model->pic=$model->file->extension; // pic is a field in database varchar(20) 
    $model->save(false) ; 

    $ImageName=$model->id; 
    if (!file_exists('uploads/'.$ImageName)) { 
    mkdir('uploads/'.$ImageName, 0777, true); 
     } 
    $model->file->saveAs('uploads/'.$ImageName.'/'.$ImageName.'.'.$model- 
    >file->extension); 

`

0

UploadedFile::getinstance返回文件的array。使用getInstanceByNameUploadedFile::getinstance($model, 'file')[0]

+0

我尝试getInstanceByName但我有新的消息错误 '在非法偏移类型isset或空' –

+0

@阿卜杜勒 - FattahEl-Hamali在哪里呢?什么线? – bluehipy

+0

public static function getInstanceByName($ name) { $ files = self :: loadFiles(); return isset($ files [$ name])?新的静态($ files [$ name]):null; //停在这一行 } –