Type と Asset の 2 つのエンティティがあり、その定義を以下に示します。
Type->name
Web アプリでアセットのリストを表示するには、 and を連結したアセット名を生成する必要がありますAsset->id
(例: cat-158 または dog-15)。
getName()
Type 名をフェッチし、それを Asset id と結合するメソッドを Asset Entity に追加しました。アセットを取得するときに結合ステートメントを使用して名前が作成されるように、注釈を使用してこれを行う方法はありますか? 基本的に、アセットをフェッチするときに適切な名前/IDの組み合わせで埋められたアセットエンティティのプロパティで、呼び出し時にタイプをフェッチせずにgetName()
?
<?php
class Asset
{
/**
* @ORM\Id
* @ORM\GeneratedValue("IDENTITY")
* @ORM\Column(type="integer")
* @var integer
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity="\Type")
* @var \Type
*/
private $type;
/**
* Constructs a name from the type and id
* @return string
*/
public function getName()
{
return $this->getType()->getName() . '-' . $this->getId();
}
// SNIP ...
}
class Type
{
/**
* @ORM\Id
* @ORM\GeneratedValue("IDENTITY")
* @ORM\Column(type="integer")
* @var integer
*/
private $id;
/**
* @ORM\Column(type="string", length=200, unique=true, nullable=false)
* @var string
*/
private $name;
// SNIP ...
}