我正在使用S3来保存我的网络工具的图像。目前我正在将密钥(' images / x / y.jpg')保存到数据库中。
要获取我正在执行此操作的文件的URL:
Store::cloud()->url(key)
是否可以执行此步骤直接在模型中将密钥转换为网址?是否有一个"预处理" -function,我可以在Laravel模型中覆盖它?
答案 0 :(得分:1)
有几种方法可以做到这一点:
<强> 1。使用访问者
将相对路径存储在数据库中,但通过Accessors访问完整路径,如下所示:
public function getFullUrlAttribute($relUrl) {
return config('filesystems.asset_url') . $relUrl;
}
<强> 2。使用助手
定义一个这样的帮助器:
function getAssetUrl($relUrl)
但是在这两种情况下,您都必须在配置文件中定义路径。这确实为您提供了以后使用Cloudfront等CDN的灵活性。您只需更改配置
即可