Как избежать _matchingData и вместо этого получить конкретное значениеPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как избежать _matchingData и вместо этого получить конкретное значение

Сообщение Anonymous »

В модели таблицы заказов мне нужны идентификаторы категорий продуктов, связанных с заказом
Model/Table/OrdersTable.php

Код: Выделить всё

    public function updateQuantityForInventoryItems(array $orders_items): void
{
$ordersItemsIds = [];

foreach ($orders_items as $orders_item) {
array_push($ordersItemsIds, $orders_item->product_id);
}

$catIds = $this->find('ordersItemsCategories', ['ordersItemsIds' => $ordersItemsIds])->toArray();

dd($catIds);

$InventoriesTable = TableRegistry::getTableLocator()->get('Inventories');
$InventoriesTable->updateQuantityForInventoryItems('orders', $catIds);
}

public function findOrdersItemsCategories(Query $query, array $options): Query
{
$query = $this->OrdersItems->Products
->find()
->select(['Products.id','CategoriesProducts.category_id'])
->matching(
'CategoriesProducts', function (Query $q) use ($options) {
return $q->where([
'CategoriesProducts.product_id IN' => $options['ordersItemsIds'],
]);
});

return $query->hydrate(false);
}
сгенерированный SQL-запрос

Код: Выделить всё

SELECT Products.id AS `Products__id`, CategoriesProducts.category_id AS `CategoriesProducts__category_id` FROM products Products INNER JOIN categories_products CategoriesProducts ON (CategoriesProducts.product_id in (4325,3632) AND Products.id = (CategoriesProducts.product_id))
Когда я распечатываю массив с помощью dd($catIds); , я получаю массив с _matchingData

Код: Выделить всё

array:4 [▼
0 => array:2 [▼
"id" => 3632
"_matchingData" => array:1 [▼
"CategoriesProducts" => array:1 [▼
"category_id" => 10
]
]
]
1 => ...
]
как мне получить Category_id по идентификатору
(я уже проверил эту тему. Как распечатать значение объекта _matchingData в cakephp 3, но все равно безуспешно)

Подробнее здесь: https://stackoverflow.com/questions/671 ... ue-instead
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»