图像上传不会触发 Mutator

Posted

技术标签:

【中文标题】图像上传不会触发 Mutator【英文标题】:Mutator doesn't fire for image upload 【发布时间】:2018-06-24 14:22:24 【问题描述】:

在 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' 
    ]);

还有我在 filesystems.php 中的“s3”磁盘:

's3' => [
        'driver' => 's3',
        'key' => env('AWS_KEY'),
        'secret' => env('AWS_SECRET'),
        'region' => env('AWS_REGION'),
        'bucket' => env('AWS_BUCKET'),
    ],

我已经仔细检查了 Thumbnail_URL 是否可以填写。我真的不确定我错过了什么。

【问题讨论】:

【参考方案1】:
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);

【讨论】:

感谢您的帮助!这并没有改变我能看到的任何东西,仍然将它存储在 Ctemp 中,并且 S3 中没有任何内容。

以上是关于图像上传不会触发 Mutator的主要内容,如果未能解决你的问题,请参考以下文章

未调用 Firebase 存储完成处理程序

PayPal 的 IPN 不会因购物车上传而触发

点击事件不会在动画图像视图上触发

在图像中嵌入分析代码以在显示图像时触发

Swipe、swipeleft、swiperight 事件不会在图像上触发

缩放图像后触摸移动事件不会触发(scale3d)