1

ここで説明されているプロセスに従っています:

http://docs.sylius.org/en/latest/bundles/SyliusCartBundle/installation.html#creating-your-entities

私はCartBundle成功せずに何日も実装しようとしましたが、助けていただければ幸いです!

ドキュメントで説明されているように、私は自分の製品エンティティを実装しようとしています。

ここに私の YAML があります:

Pharmacie\FrontBundle\Entity\CartItem:
type: entity
table: cart_item
manyToOne:
    product:
        targetEntity: Product    
        joinColumn:
            name: product_id
            referencedColumnName: id 

自動的に作成されたデータベースは、ID の自動インクリメント、a、product_idおよびsylius_cart_item

しかし、アクセスしようとすると:

/cart/add?productId=3

私は得る

"Sylius\Bundle\CartBundle\Model\CartItem" のエンティティ "Pharmacie\FrontBundle\Entity\CartItem" サブクラスに識別子/主キーが指定されていません。すべてのエンティティには、識別子/主キーが必要です。

それでもデータベースには主キーが設定されています。

  • 属性は Entity で保護されてい$idます。$productCartItem
  • YAML で ID を指定しようとすると、重複しているというエラーが表示されます。さらに、ドキュメントでは、IDを再度マップしないように指定しています

更新: 多分私は間違った方向に行った.

最初に表示されたエラーは次のとおりです。

エンティティの永続化操作をカスケードするように構成されていない関係 'Pharmacie\FrontBundle\Entity\CartItem#produit' を通じて、新しいエンティティが見つかりました: Pharmacie\FrontBundle\Entity\Product@000000007ba4ab6a0000000010e955d1。この問題を解決するには: この不明なエンティティで明示的に EntityManager#persist() を呼び出すか、カスケードを構成してこの関連付けをマッピングで保持します (例: @ManyToOne(..,cascade={"persist"}))。問題の原因となっているエンティティが見つからない場合は、'Pharmacie\FrontBundle\Entity\Product#__toString()' を実装して手がかりを得ることができます。500 内部サーバー エラー - ORMInvalidArgumentException

だから私は追加しました

$this->entityManager->persist($item);

そして、これは私にエラーを与えました。でも多分私は何か違うことをしたほうがいい

4

1 に答える 1