使用している古いプロジェクトでは、などの他のオブジェクトにリンクされsymfony 1.4
たオブジェクトがあります...Product
Translation
ProductPlatform
私がやりたいのはcopy
、すべての関係を持つ Product オブジェクトです。
非常にシンプル$product->copy(true)
BUT
関係をコピーしないので、次のことを行う必要があります。
$this->loadReference('Translation');
$this->loadReference('ProductPlatforms');
foreach ($this->ProductPlatforms as $platform) {
$platform->loadReference('Translation');
}
$newProduct = $this->copy(true);
$newProduct->save();
return $newProduct;
スローされたエラーは次のとおりです。
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '1-131' for key 'product_platform_position_sortable_idx'
私が理解していないのは、次の要求です。
SELECT p.id AS p__id, p.position AS p__position FROM product_platform p
WHERE (p.product_id = 'EndNote (copie)') ORDER BY p.position desc LIMIT 1;
----
INSERT INTO product_platform (publish_configuration, product_id, platform_id, position)
VALUES ('1', '131', '1', '1')
次に、別のオブジェクトに対して同じ位置を再挿入します。
INSERT INTO product_platform (publish_configuration, product_id, platform_id, position)
VALUES ('1', '131', '3', '1');
ID の代わりに、Where
句にオブジェクトの名前があるのはなぜですかWHERE (p.product_id = 'EndNote (copie)')
。これが同じ値を挿入しようとする理由だと思います。