我正在尝试在Image
模型中定义一个自定义创建方法,以将文件上传到存储设备并为其指定唯一的文件名。
从5.4开始,我似乎找不到任何有关创建自定义方法的过程的信息。我检查了文档,然后按照他们说的做(我想)。请参见https://laravel.com/docs/5.4/upgrade“创建和强制创建方法”。
我的模特:
protected $fillable = [
'name',
'caption',
'path'
];
public static function create(array $attributes, $image, $extension, $folder = null)
{
die("It died.");
$attributes['path'] = FileNameGenerator::getNewFilePath($extension);
Storage::disk('s3')->put( $folder . $attributes['path'], File::get($image));
$model = static::query()->create($attributes);
return $model;
}
我在哪里称呼模型:
Auth::user()->image()->create([], $image, $extension, config('app.profile_pictures_path'));
我收到一个错误,提示path
没有默认值。
由于未调用die
方法,因此好像完全忽略了该方法。我还尝试过更改函数的参数,使其看起来完全像文档中显示的一样,但是仍然会产生相同的结果。
很抱歉,如果这是一个新手问题。我真的看不到任何错误。