Mutator不会触发图像上传

时间:2018-01-15 22:42:23

标签: amazon-s3 backpack-for-laravel

在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是否可填写。我真的不确定我错过了什么。

1 个答案:

答案 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);

}