Ошибка, пока на прямую items в документе не удалю - ничего не добавляется.
Fatal error: Uncaught Sokil\Mongo\Document\InvalidOperationException: The field "items" must be an array but is of type Object in /usr/src/consumer/vendor/sokil/php-mongo/src/Document.php:948
consumer_1 | Stack trace:
consumer_1 | #0 /usr/src/consumer/src/CUDReceiver.php(118): Sokil\Mongo\Document->push('items', Object(brokers\models\StructItem))
Создается документ в mongodb. И пока в ручную " items: []" не удаляю - пишет ошибку и не добавляет элемент.. Или наоборот не добавлю. В общем вообще не понимаю, в чем причина?
{
_id: 2,
name: 'coffe',
items: []
}
Сам код:
$newItem = new StructItem([
'id' => $data['id'],
'name' => $data['name'],
'price' => $data['price'],
'img_link' => $data['img_link']
]);
$documentCategory = $collection->find()->where('_id', $data['category_id']['id'])->findOne();
$isExist = false;
try {
$items = $documentCategory->getItems();
if (count($items) > 0)
foreach ($items as $existItem) {
if ($existItem['id'] === $data['id']) {
$isExist = true;
break;
}
}
} catch (\Throwable $exception) {
echo $exception->getMessage() . " - Нет элементов \n";
}
if ($isExist) {
echo '[x] Exists #' . "\n";
break;
}
$documentCategory->push('items', $newItem);
$res = $documentCategory->save();