私はエンティティに従う必要があります:
/**
* ProductService
*
* @ORM\Table(name="sf_products_services")
* @ORM\Entity(repositoryClass="Evo\BackendBundle\Entity\ProductServiceRepository")
*/
class ProductService
{
[...]
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=150)
*/
protected $name;
[...]
$ nameプロパティの「長さ」の値を読み取るにはどうすればよいですか?私はdoctrineメタデータを使用することができると読みましたが、それを使用する方法とこれらのデータを読み取る方法については何も見つかりません。
@wonde回答に従って、次のようにDoctrineメタデータ情報を介して必要な情報を読むことができます。
$doctrine = $this->getContainer()->get("doctrine");
$em = $doctrine->getManager();
$className = "Evo\BackendBundle\Entity\ProductService";
$metadata = $em->getClassMetadata($className);
$nameMetadata = $metadata->fieldMappings['name'];
echo $nameMetadata['type']; //print "string"
echo $nameMetadata['length']; // print "150"
この助けを願っています
getClassMetadata(mixed $ className)クラスのORMメタデータ記述子を返します
例えば
$metadata = $entityManager->getClassMetadata($className);
「クラス名は、(get_class($ obj)によって返されるので)先頭にバックスラッシュがない完全修飾クラス名であるか、エイリアスされたクラス名でなければなりません。例:MyProject\Domain\User sales:PriceRequest "