エンティティの基本的な記述を例を用いて説明します。以下の例では、Userエンティティを作成しています。
// src/Entity/User.php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity()
* @ORM\Table(name="users")
*/
class User
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=255)
*/
private $username;
/**
* @ORM\Column(type="string", length=255)
*/
private $email;
// GetterとSetterメソッドが省略されている
// コンストラクターなどのメソッドも追加することができる
}
この例では、Userエンティティが作成されています。以下に各要素の説明を示します。
namespace
namespaceキーワードは、このファイルがApp\Entityの名前空間にあることを示しています。これにより、このクラスが他のクラスと競合しないようになります。
use
useキーワードは、他のクラスやトレイトをインポートします。この例では、ORMというエイリアスをDoctrine\ORM\Mappingに割り当てています。
エンティティのクラス定義
Userクラスは、Userエンティティを表します。UserクラスはApp\Entity名前空間内にあります。
@ORM\Entity()
@ORM\Entity()アノテーションは、このクラスがDoctrineのエンティティであることを示します。
@ORM\Table(name="users")
@ORM\Tableアノテーションは、このエンティティが対応するデータベースのテーブルの名前を指定します。この場合、usersという名前のテーブルにマッピングされます。
プロパティ
エンティティのプロパティは、データベースの列にマッピングされます。例えば、$usernameプロパティは、usersテーブル内のusername列にマッピングされます。
@ORM\Id()
@ORM\Id()アノテーションは、このプロパティがエンティティの主キーであることを示します。
@ORM\GeneratedValue()
@ORM\GeneratedValue()アノテーションは、このプロパティが自動的に生成される主キーであることを示します。
@ORM\Column
@ORM\Columnアノテーションは、プロパティがデータベースの列にマッピングされることを示します。typeパラメータは、列のデータ型を指定します。
これは基本的なUserエンティティの例です。これを使用して、Symfonyアプリケーションでユーザーのデータベースレコードを表現することができます。

お問い合わせ