Open2

[Symfony/Entity] テーブルと紐づかないプロパティ

tanaka_tarotanaka_taro

DBから読み出された時、createdAt の値を使って createdAtWithHadTimeZoneというプロパティをEntity に設定したいと思った。

tanaka_tarotanaka_taro

テーブルと紐づかないプロパティをエンティティに追加するには、単にエンティティクラス内にそのプロパティを定義し、Doctrineのマッピングアノテーションを使わないようにします。


use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 */
class YourEntity
{
    /**
     * @ORM\Id
     * @ORM\GeneratedValue
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="datetime")
     */
    private $createdAt;

    // データベースのテーブルにはマッピングされないプロパティ
    private $temporaryData;

    // GetterとSetter
    public function getTemporaryData()
    {
        return $this->temporaryData;
    }

    public function setTemporaryData($temporaryData): void
    {
        $this->temporaryData = $temporaryData;
    }

    // 他のプロパティやメソッド...
}

$temporaryDataプロパティはエンティティのインスタンスが生存している間だけ存在し、データベースに永続化されることはありません。