S3 URL直接在Model中

时间:2017-10-02 17:59:32

标签: laravel laravel-5

我正在使用S3来保存我的网络工具的图像。目前我正在将密钥(' images / x / y.jpg')保存到数据库中。

要获取我正在执行此操作的文件的URL:

Store::cloud()->url(key)

是否可以执行此步骤直接在模型中将密钥转换为网址?是否有一个"预处理" -function,我可以在Laravel模型中覆盖它?

1 个答案:

答案 0 :(得分:1)

有几种方法可以做到这一点:

<强> 1。使用访问者

将相对路径存储在数据库中,但通过Accessors访问完整路径,如下所示:

public function getFullUrlAttribute($relUrl) {
    return config('filesystems.asset_url') . $relUrl;
}

<强> 2。使用助手

定义一个这样的帮助器:

function getAssetUrl($relUrl)

但是在这两种情况下,您都必须在配置文件中定义路径。这确实为您提供了以后使用Cloudfront等CDN的灵活性。您只需更改配置

即可