Symfony5のエンティティクラスの書き方について
カラムの属性を記述する方法はどうすればいい?
結論、こんな感じで書きます。
Person.php
<?php
namespace App\Entity;
use App\Repository\PersonRepository;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity(repositoryClass: PersonRepository::class)]
class Person
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column]
private ?int $id = null;
#[ORM\Name]
#[ORM\Column(length:255,nullable:true)]
private ?string $name = null;
#[ORM\Mail]
#[ORM\Column(length:255,nullable:true)]
private ?string $mail = null;
#[ORM\Age]
#[ORM\Column(nullable:true)]
private ?int $age = null;
public function getId(): ?int
{
return $this->id;
}
public function getName():?string
{
return $this->name;
}
public function getMail():?string
{
return $this->mail;
}
public function getAge():?int
{
return $this->age;
}
public function setName(string $name):self
{
$this->name = $name;
return $this;
}
public function setMail(string $mail):self
{
$this->mail = $mail;
return $this;
}
public function setAge(int $age):self
{
$this->age = $age;
return $this;
}
}
たとえば。nameカラムの属性情報は、下記の通り記載します。
Person.php
#[ORM\Name]
#[ORM\Column(length:255,nullable:true)]
private ?string $name = null;
symfonyのバージョンによって記載は少し違うので、バージョンごとに公式サイトで確認してみましょう。