2015-12-05 76 views
3

我正在关注dropzone视频(https://laracasts.com/series/build-project-flyer-with-me/episodes/11)。在我的情况下,用户有很多文件。Laravel实例错误

但我被困在以下情况例外:

Argument 1 passed to App\User::addFile() must be an instance of App\files, instance of Symfony\Component\HttpFoundation\File\UploadedFile given, called in D:\wamp\www\local\app\Http\Controllers\UploadCenterController.php on line 28 and defined 

我storeFiles控制器:

public function storeFiles(Request $request) 
    { 
     $this->validate($request, [ 
      'file' => 'required|mimes:jpg,jpeg,png,bmp' 
     ]); 
     $file = $request->file('file'); 
     $name = time() . $file->getClientOriginalName(); 
     $file->move('files/user',$name); 
     $saveFile = files::fromForm($file); 
     $user = Auth::user()->addFile($saveFile); 
    } 

在文件模型的静态方法fromForm:

public static function fromForm(UploadedFile $file) 
    { 
     $newFile = new static; 
     $name = time() . $file->getClientOriginalName(); 
     $newFile->path = '/files/user/'.$name; 
     return $file; 
    } 
在用户

而且addFile型号:

public function addFile(files $file) 
    { 
     return $this->files()->save($file); 
    } 

请帮忙!

- 编辑 -

整个文件类:

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 
use Symfony\Component\HttpFoundation\File\UploadedFile; 
class files extends Model 
{ 
    protected $table = 'user_images'; 
    protected $fillable = ["user_id","path"]; 

    public function user() 
    { 
     return $this->belongsTo('App\User'); 
    } 

    public static function fromForm(UploadedFile $file) 
    { 
     $newFile = new static; 
     $name = time() . $file->getClientOriginalName(); 
     $newFile->path = '/files/user/'.$name; 
     return $file; 
    } 
} 
+0

请为'addFile'方法定义的参数提示'files'类的代码。 – Bogdan

+0

请参阅我的编辑 – Jamie

回答

2

找到了!

在我的文件级恢复(fromForm法)

$ NEWFILE而不是$文件!