Open2
[Symfony/Entity] テーブルと紐づかないプロパティ
![tanaka_taro](https://res.cloudinary.com/zenn/image/fetch/s--EaiLYa0a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/0d0be642de.jpeg)
DBから読み出された時、createdAt
の値を使って createdAtWithHadTimeZone
というプロパティをEntity に設定したいと思った。
![tanaka_taro](https://res.cloudinary.com/zenn/image/fetch/s--EaiLYa0a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/0d0be642de.jpeg)
テーブルと紐づかないプロパティをエンティティに追加するには、単にエンティティクラス内にそのプロパティを定義し、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プロパティはエンティティのインスタンスが生存している間だけ存在し、データベースに永続化されることはありません。