как поместить объект внутри массива laravel php

#laravel #laravel-collection

#laravel #laravel-коллекция

Вопрос:

я выполнил запрос из базы данных и вернул массив

 $games = Game::where('admin_id', $user->id)->where('active', true)->get();
  

теперь я пытаюсь добавить объект внутри $games массива следующим образом

 $games->push(['name' => 'Game1', 'color' => 'red']); //its adding array instead object
  

пожалуйста, объясните, спасибо

Ответ №1:

Поскольку вы нажали array , это добавляет массив.

 // here, you are pushing the array so you get the array.
['name' => 'Game1', 'color' => 'red']
  

Нажатие объекта следующим образом:

 $games = $games->push(new Game(['name' => 'Game1', 'color' => 'red']));
  

или таким образом:

 $games = $games->push((object)['name' => 'Game1', 'color' => 'red']);
  

Комментарии:

1. я не хочу сохранять в БД, я просто хочу добавить переменную внутри массива

2. @sidheart нет ничего, связанного с сохранением в db? откуда вы это взяли?

3. @sidheart использование красноречивой модели не означает сохранения в БД.

4. Проблема, с которой я сталкиваюсь, заключается в том, что у меня есть коллекция, получаемая из БД, и я хочу добавить еще 2 объекта внутри переменной массива, чтобы я мог использовать ее как $game->name позже

5. @sidheart мой ответ сделал именно то, что вы хотели, два решения, которые я предоставил, вообще не обновляют БД. Я не понимаю, о чем вы беспокоитесь.