добавить к полю массива с помощью eloquent

#laravel #mongodb #eloquent

#laravel #mongodb #eloquent

Вопрос:

У меня есть приложение с laravel и mongodb. С помощью elequent я пытаюсь добавить новое значение к массиву, хранящемуся в поле.

Итак, это пример документа. Я пытаюсь добавить новое значение в поле projects.

  {
"_id":{
  "$oid":"5f80513714450000a6007c90"
},
"organization_id":"5f80304214450000a6007c81",
"user_id":"5f80513714450000a6007c8f",
"status":true,
"role_id":"5c148783fe412ba8333074ec",
"company_id":"5f80511f14450000a6007c8e",
"updated_at":{
   "$date":"2020-11-09T18:42:03.000Z"
},
"created_at":{
  "$date":"2020-10-09T12:01:59.000Z"
},
"projects":[
  "5fa33513416100008d0070ba",
  "5f80429814450000a6007c85",
  "5f80436714450000a6007c86"
]
}
  

в моей модели я создал этот метод

 public function push_user_projects($data, $where_data) {
    return UserAccountsModel::where($where_data)->put($data);
}
  

where_data работает хорошо. Метод находит правильные документы для обновления.
Но то, что не работает, — это нажимная часть. Следующее — это то, что я ввел в параметр data

                 $data = array(
                'projects' => array(
                    $projectData["_id"]
                )                 
            );
  

И когда я вижу результат, совершенно новый массив обновил поле проектов новым значением. Но я хочу добавить значение к существующему массиву. Может ли кто-нибудь мне помочь?

Ответ №1:

Чтобы вставить другой элемент в вашу переменную данных в разделе «проекты»

 $data['projects'][] = $projectData["_id"];
  

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

1. Переменная данных уже хороша. Я пытаюсь вставить значение в переменную данных внутри моего поля документа mongodb с помощью моей модели eloquent