关于此,我似乎找不到任何在线内容。我试图弄清楚如何将变量传递给模型的侦听器。
这是我要实现的目标:
Auth::user()->image()->create([], $image, $extension, config('app.profile_pictures_path'));
谢谢
编辑:
这是我的观察者:
public function creating(Image $image, $imageFile, $extension, $folder = null)
{
$image->path = $folder . FileNameGenerator::getNewFilePath($extension);
//gets a unique random file name
Storage::disk('s3')->put( $image->path, File::get($imageFile));
return $image;
}
答案 0 :(得分:0)
这是我想出的。我希望这被认为是不错的代码。
public static function saveImage( $model, $pluralModel, $image, $extension, $folder, array $attributes = null)
{
$path = $folder . self::getNewFilePath($folder, $extension);
Storage::disk('s3')->put( $path, File::get($image));
$attributes['path'] = $path;
$attributes['size_kb'] = self::getFileSizeKb($image);
if($pluralModel){
$model->images()->create($attributes);
}else{
if($model->image()->exists()) self::deleteFile($model->image);
$model->image()->create($attributes);
}
return true;
}
public static function deleteFile($model)
{
Storage::disk('s3')->delete($model->path);
$model->delete();
}