亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在超類中擁有實體的列?

如何在超類中擁有實體的列?

PHP
蕭十郎 2023-09-22 14:41:51
我想在實體的超類/基類中擁有一些屬性。我想要實現的最簡單的例子是這樣的:<?phpclass BaseEntity{    /**     * @ORM\Id     * @ORM\Column(type="integer")     * @ORM\GeneratedValue     * @var int internal ID     */    private int $id;    public function getId(): int{        return $this->id;    }}/** * @ORM\Entity * @ORM\Table(name="someentities") */class SomeEntity extends BaseEntity{    // more stuff}有沒有辦法用 ORM 來做到這一點?上面的例子不起作用,Doctrine在SomeEntity中找不到主鍵。您可以通過使 BaseEntity 本身成為實體來做到這一點,但我想避免這種情況。
查看完整描述

1 回答

?
catspeake

TA貢獻1111條經驗 獲得超0個贊

基本上你需要做的是使用Mapped Superclasses。對于上面的例子,它看起來像這樣:

<?php

/** @ORM\MappedSuperclass */

class BaseEntity{

? ? /**

? ? ?* @ORM\Id

? ? ?* @ORM\Column(type="integer")

? ? ?* @ORM\GeneratedValue

? ? ?* @var int internal ID

? ? ?*/

? ? private int $id;


? ? public function getId(): int{

? ? ? ? return $this->id;

? ? }

}

/**

?* @ORM\Entity

?* @ORM\Table(name="someentities")

?*/

class SomeEntity extends BaseEntity{

? ? // more stuff

}

如果您偶然發現這個問題,您可能也在尋找Embeddables,具體取決于您想要完成的任務。



查看完整回答
反對 回復 2023-09-22
  • 1 回答
  • 0 關注
  • 148 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號