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/associations.html#saving-related-entities
Печать связанных объектов
http://symfony.com/doc/current/doctrine/associations.html#fetching-related-objects
Источник
О всевозможных вариантах связей в таблицах можно почитать здесь.
Официальная Документация Symfony
- Log in to post comments
- 5768 reads
vedro-compota
Tue, 09/26/2017 - 15:26
Permalink
в заголовках следует
в заголовках следует указывать русские эквиваленты терминов (тут поправил)
_____________
матфак вгу и остальная классика =)