Laravel Eloquent: добавление элементов в результаты SQL-запроса - PullRequest
0 голосов
/ 11 мая 2018

Я хочу добавить элементы к каждому результату запроса SQL:

$res = DB::table('users')->get();
forEach ($res as $elem) {
    $elem['new_data'] = 'this is my new data';
}

Но я получаю эту ошибку в строке в цикле:

Невозможно использовать объект типа stdClass в качестве массива

Как мне это сделать?

Спасибо за вашу помощь.

Ответы [ 2 ]

0 голосов
/ 11 мая 2018

См. Сообщение об ошибке.

Невозможно использовать объект типа stdClass в качестве массива

$ res - это коллекция объектов

Использование внутри foreach:

$elem->new_data

Поставлено:

$elem['new_data']

$ elem не является массивом

0 голосов
/ 11 мая 2018

Вы также можете использовать функцию сбора Laravel https://laravel.com/docs/5.6/collections

$res = DB::table('users')->get();

$res = $res->map(function($user) {
  $user->new_data = 'this is my data'
  return $user;
}

dd($res)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...