Не могу добавить элемент в массив из функции json_decode - PullRequest
0 голосов
/ 26 июня 2018

Ниже приведен мой код:

$contents=DB::table('content')->select('*')->where([
        ['gate_id', '=', $id],
        ['cat_id', '=', $did],
    ])->get();
    $rcontents=json_decode($contents,true);
    foreach ($rcontents as $content){
        $content['url_img'] = Storage::url($content['img']);
        $content['url_link']= Storage::url($content['link']);
    }

* img и link только сохраняют только имя файла.Я использую Storage::url, чтобы получить полный URL-адрес файла.Внутри foreach, когда я повторяю $content['url_img'] или $content['url_link'], они имеют значение, которое я хочу.Но после этого кода массив $rcontents не меняется.Пожалуйста, скажите мне, почему и помогите мне

1 Ответ

0 голосов
/ 26 июня 2018

Почему вы расшифровываете $contents?Это коллекция, возвращенная из запроса.

Попробуйте выполнить следующее:

$contents = DB::table('content')->select('*')->where([
    ['gate_id', '=', $id],
    ['cat_id', '=', $did],
])->get();

$transformed = $contents->transform(function ($content) {
    $content->url_img = Storage::url($content->img);
    $content->url_link = Storage::url($content->link);
    return $content;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...