Как добавить первую часть URL-адреса в значение объекта перед отправкой в ​​кодировку json - PullRequest
0 голосов
/ 28 августа 2018

Я запрашиваю в БД список изображений:

$rows = $db->table('images')->where('attivo', 1)->get();

Я получаю следующий объект:

object(Illuminate\Support\Collection)#107 (1) {
  ["items":protected]=>
  array(5) {
    [0]=>
    object(stdClass)#96 (12) {
      ["id"]=>
      int(3)
      ["img"]=>
      string(11) "example.jpg"
      ["created_at"]=>
      string(19) "2018-07-26 20:33:59"
      ["attivo"]=>
      int(1)
    }
    [1]=>
    object(stdClass)#88 (12) {
      ["id"]=>
      int(4)
      ["img"]=>
      string(12) "img.png"
      ["created_at"]=>
      string(19) "2018-07-26 20:33:59"
      ["attivo"]=>
      int(1)
    }
    [2]=>
    object(stdClass)#103 (12) {
      ["id"]=>
      int(5)
      ["img"]=>
      string(9) "test2.jpg"
      ["created_at"]=>
      string(19) "2018-07-27 13:42:13"
      ["attivo"]=>
      int(1)
    }
  }
}

Мне нужно изменить значение img, поместив перед ним заголовок (http://www.example.com/folder/) url), а затем переписать значение обратно объекту перед отправкой в ​​кодировку json.

Я попробовал следующее, но, возможно, у меня неправильный подход к проблеме.

foreach ($rows as $k => $value) {
    if($k == 'img'){
        echo $rows['img'] = "http://example.com/folder/".$value->img;
    }
}

Можете ли вы дать мне направление, пожалуйста?

1 Ответ

0 голосов
/ 28 августа 2018

Наконец-то я нашел решение. Я должен был использовать map как:

$rows->map(function ($value) {
   $value->img = 'http://example.com/img/'. $value->img;
});
...