首页 > 解决方案 > Laravel 雄辩地将字符串添加到结果中。

问题描述

我使用 eloquent 从posts表中检索数据。这是一个简化的示例:

$posts = Post::with(
    array('user'=>function($query){
        $query->select('id','username');
    }))
    ->with('category')
    ->with('images')
    ->orderBy('id', 'DESC')
    ->paginate(25);

结果images如下所示:

"images": [
                {
                    "id": 4,
                    "user_id": 1,
                    "post_id": 104,
                    "file": "cb2a81314c006425e7d7fb1fcb4ebd66c2ea5a75.jpg",
                    "width": 1050,
                    "height": 1204,
                    "created_at": "2018-09-23 15:53:24",
                    "updated_at": "2018-09-23 15:53:24"
                }
            ]

有没有办法,我可以添加一个字符串,分别是文件名的链接,使其看起来像这样:https://example.com/uploads/cb2a81314c006425e7d7fb1fcb4ebd66c2ea5a75.jpg

我自己还没有找到一种方法来做到这一点,如果有人可以帮助我,我会很高兴。

标签: laraveleloquent

解决方案


使用$appends

class Image extends Model {
    protected $appends = ['url'];

    public function getUrlAttribute() {
        return 'https://example.com/uploads/'.$this->file;
    }
}

推荐阅读