Я пытаюсь сохранить объект, связанный с BelongsToMany, т.е. заказать продукты BelongsToMany.Моя объединенная таблица содержит важные данные, которые мне нужно сохранить, даже если идентификаторы продуктов дублированы.Унифицированный ключ не был создан в объединенной таблице.Но patchEntity мешает мне сделать это, потому что он удаляет дублированные продукты.
OrdersTable.php
class OrdersTable extends Table
{
public function initialize(array $config)
{
parent::initialize($config);
$this->belongsToMany('Products', [
'foreignKey' => 'order_id',
'targetForeignKey' => 'product_id',
'joinTable' => 'orders_products',
'through' => 'OrdersProducts'
]);
}
}
Это мой POST, где вы можете видеть, что продукт с идентификатором 1772 вставляется более одного раза.
'products' => [
(int) 0 => [
'_joinData' => [
'id' => '50',
'order_id' => '',
'product_name' => '- name -',
'exception_id' => '',
'exception_name' => '',
'weft' => '100',
'warp' => '100',
'manufacture_name' => 'AC',
'real_cost' => '1.2',
'ordered_quantity' => '32',
'received_quantity' => '2',
'difference' => '30'
],
'id' => '1772'
],
(int) 1 => [
'_joinData' => [
'id' => '',
'order_id' => '',
'exception_id' => '1',
'weft' => '100',
'warp' => '100',
'manufacture_name' => 'AC',
'real_cost' => '1.2',
'ordered_quantity' => '111',
'received_quantity' => '1',
'difference' => '0'
],
'id' => '1772'
]
]
После исправления сущности я получаю это (я удалил ненужные или конфиденциальные данные)
'products' => [
(int) 0 => object(App\Model\Entity\Product) {
'id' => (int) 1772,
'_joinData' => object(App\Model\Entity\OrdersProduct) {
'id' => (int) 50,
'exception_id' => null,
'manufacture_id' => null,
'order_id' => null,
'product_id' => (int) 1772,
'sorting' => (int) 1,
'price' => null,
'real_cost' => (float) 1.2,
'ordered_quantity' => (int) 32,
'received_quantity' => (int) 2,
'weft' => (float) 100,
'warp' => (float) 100,
'weft_with_shrinkage' => null,
'warp_with_shrinkage' => null,
'weft_with_shrinkage_fold' => null,
'warp_with_shrinkage_fold' => null,
'[new]' => false,
},
}
],
Это не хорошо для меня.Мой клиент хочет добавлять один и тот же продукт много раз.
Есть ли способ предотвратить удаление дубликатов patchEntity ()?