Doktrin 2 dan Jadual Pautan Many-to-many dengan Medan Tambahan
Isu ini timbul apabila cuba mencipta model pangkalan data dengan perhubungan banyak-ke-banyak yang memerlukan medan tambahan dalam jadual pautan. Khususnya, jadual penyimpanan stok diperlukan.
Untuk menyelesaikan masalah ini, adalah penting untuk memahami bahawa perkaitan sebegitu bukanlah perhubungan Ramai-Ke-Ramai tetapi sebaliknya entiti baharu, kerana ia kini mempunyai pengecam (hubungan dengan entiti yang disambungkan) dan nilai tambahan.
Model pangkalan data harus distruktur semula seperti berikut:
Produk:
namespace Entity; use Doctrine\ORM\Mapping as ORM; /** @ORM\Table(name="product") @ORM\Entity() */ class Product { /** @ORM\Id() @ORM\Column(type="integer") */ protected $id; /** ORM\Column(name="product_name", type="string", length=50, nullable=false) */ protected $name; /** @ORM\OneToMany(targetEntity="Entity\Stock", mappedBy="product") */ protected $stockProducts; }
Kedai:
namespace Entity; use Doctrine\ORM\Mapping as ORM; /** @ORM\Table(name="store") @ORM\Entity() */ class Store { /** @ORM\Id() @ORM\Column(type="integer") */ protected $id; /** ORM\Column(name="store_name", type="string", length=50, nullable=false) */ protected $name; /** @ORM\OneToMany(targetEntity="Entity\Stock", mappedBy="store") */ protected $stockProducts; }
Stok:
namespace Entity; use Doctrine\ORM\Mapping as ORM; /** @ORM\Table(name="stock") @ORM\Entity() */ class Stock { /** ORM\Column(type="integer") */ protected $amount; /** * @ORM\Id() * @ORM\ManyToOne(targetEntity="Entity\Store", inversedBy="stockProducts") * @ORM\JoinColumn(name="store_id", referencedColumnName="id", nullable=false) */ protected $store; /** * @ORM\Id() * @ORM\ManyToOne(targetEntity="Entity\Product", inversedBy="stockProducts") * @ORM\JoinColumn(name="product_id", referencedColumnName="id", nullable=false) */ protected $product; }
Atas ialah kandungan terperinci Bagaimana Mengendalikan Perhubungan Banyak-ke-Banyak dengan Medan Tambahan Menggunakan Jadual Pautan Doktrin 2?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!