Отношение много к одному с внешним ключом

Есть ли шанс сделать связь ManyToOne в Doctrine и переменную, которая будет содержать только идентификатор, а не весь объект? Или я могу иметь два поля, идентификатор и весь объект класса, оба сопоставлены с одним и тем же столбцом? Например:

/**
* @ORM\Table(name="product_category", uniqueConstraints={@ORM\UniqueConstraint(name="product_category_name_key", columns={"name"})})
* @ORM\Entity
*/
class ProductCategory{

 /**
 * @var string
 *
 * @ORM\Column(name="name", type="string", length=50, nullable=false)
 * @Groups({"list"})
 */
private $name;

/**
 * @var integer
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $id;

}

а также:

class PlanProduct{

 /**
 * @var \AppBundle\Entity\ProductCategory
 *
 * @ORM\ManyToOne(targetEntity="AppBundle\Entity\ProductCategory")
 * @ORM\JoinColumns({
 *   @ORM\JoinColumn(name="product_category_id", referencedColumnName="id")
 * })
 *
 * @Assert\NotBlank()
 * @Groups({"list"})
 */
private $productCategory;

}

Итак, прямо сейчас $ productCategory - это объект, который также содержит идентификатор и имя. Все, что я хочу, это содержать идентификатор. Я пытался сделать:

/**
 * @var int
 *
 * @ORM\ManyToOne(targetEntity="AppBundle\Entity\ProductCategory")
 * @ORM\JoinColumn(name="transaction_category_id",referencedColumnName="id")
 * @Assert\NotBlank()
 * @Groups({"list"})
 */
private $transactionCategoryId;

Но я не думаю, что это правильный подход. По крайней мере, возможно ли это?

0 ответов

Другие вопросы по тегам