我正在按照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