#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 мой ответ сделал именно то, что вы хотели, два решения, которые я предоставил, вообще не обновляют БД. Я не понимаю, о чем вы беспокоитесь.