拉拉维尔实例错误

3

我正在按照dropzone视频(https://laracasts.com/series/build-project-flyer-with-me/episodes/11)操作。在我的情况下,一个用户有多个文件。

但是我卡在了以下异常处:

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;
    }

在User模型中添加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;
    }
}

请在addFile方法定义的参数提示中,发布files类的代码。 - Bogdan
1个回答

2

找到了!

我需要在我的文件类(fromForm方法)中返回。

使用$newFile代替$file!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接