在Backpack for Laravel的一个项目中工作,包括上传图片,视频等。从简单的图片上传开始,我的模型中有一个mutator如下:
public function setThumbnailAttribute($value)
{
$attribute_name = "Thumbnail_URL";
$disk = "s3";
$destination_path = "images";
$this->uploadFileToDisk($value, $attribute_name, $disk, $destination_path);
}
但它似乎没有触发,每当文件被“上传”时,它会显示一个'C:\ Windows \ Temp \ php6803.tmp'作为位置。
我的领域:
$this->crud->addField([
'name' => 'Thumbnail',
'label' => 'Thumbnail',
'type' => 'image',
'upload' => true,
'disk' => 's3'
]);
我的's3'磁盘在filesystems.php中:
's3' => [
'driver' => 's3',
'key' => env('AWS_KEY'),
'secret' => env('AWS_SECRET'),
'region' => env('AWS_REGION'),
'bucket' => env('AWS_BUCKET'),
],
我已经仔细检查过Thumbnail_URL是否可填写。我真的不确定我错过了什么。
答案 0 :(得分:0)
public function setThumbnailAttribute($value)
{
$attribute_name = "Thumbnail_URL";
$disk = "s3";
$destination_path = "images";
**MISSING** $this->attributes[$attribute_name] = '....' (image path/filename)
$this->uploadFileToDisk($value, $attribute_name, $disk, $destination_path);
}