0

使用している古いプロジェクトでは、などの他のオブジェクトにリンクされsymfony 1.4たオブジェクトがあります...ProductTranslation 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)')これが同じ値を挿入しようとする理由だと思います。

4

1 に答える 1

0

OK、これは Sortable 動作のバグです。PR を送信しました:

https://github.com/bshaffer/csDoctrineActAsSortablePlugin/pull/25

于 2012-10-04T12:00:51.533 に答える