symfony Doctrine -- создать foreign key -- связь One To One между сущностями (внешние ключи)
Primary tabs
Описать связь таблиц через внешний ключ можно также с помощью аннотаций к свойствам.
Простейший пример - однонаправленная связь
Однонаправленная связь Один-к-Одному (когда единственному значению одной сущности соответствует одно значение другой сущности):
<?php /** @Entity */ class Product { // ... /** * One Product has One Shipment. * @OneToOne(targetEntity="Shipment") * @JoinColumn(name="shipment_id", referencedColumnName="id") */ private $shipment; // ... } /** @Entity */ class Shipment { // ... }
Различия между однонаправленными и двусторонними связями
Если связь будет односторонняя, Вы сможете обратиться к одной сущности через объект другой, но не наоборот:
$Product->getShipment() //только так $Shipment->getProduct() //но не так
Это оправдано только если такой вариант обоснован бизнес-логикой, например, если нас интересует, куда был отправлен продукт, но не интересует, какие продукты были отправлены туда же. Иначе целесообразно организовать двустороннюю связь.
Двусторонняя связь
<?php /** @Entity */ class Customer { // ... /** * One Customer has One Cart. * @OneToOne(targetEntity="Cart", mappedBy="customer") */ private $cart; // ... } /** @Entity */ class Cart { // ... /** * One Cart has One Customer. * @OneToOne(targetEntity="Customer", inversedBy="cart") * @JoinColumn(name="customer_id", referencedColumnName="id") */ private $customer; // ... }
Сохранение связанных объектов
http://symfony.com/doc/current/doctrine/...
Печать связанных объектов
http://symfony.com/doc/current/doctrine/...
Источник
О всевозможных вариантах связей в таблицах можно почитать здесь.
Официальная Документация Symfony
- Log in to post comments
- 4843 reads
vedro-compota
Tue, 09/26/2017 - 15:26
Permalink
в заголовках следует
в заголовках следует указывать русские эквиваленты терминов (тут поправил)
_____________
матфак вгу и остальная классика =)