Laravel красноречиво добавляет строку в результат. - PullRequest
0 голосов
/ 23 сентября 2018

Я использую 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

Я не нашел способа сделать это самостоятельно и был бы рад, если бы кто-то мог помочь мне с этим.

1 Ответ

0 голосов
/ 23 сентября 2018

Использование $appends:

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

    public function getUrlAttribute() {
        return 'https://example.com/uploads/'.$this->file;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...