VaN*_*VaN 16 php metadata properties symfony doctrine-orm
我必须遵循实体:
/**
* 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;
[...]
Run Code Online (Sandbox Code Playgroud)
如何读取$ name属性的"length"值?我读过我可以使用doctrine元数据,但我没有找到任何关于如何使用它以及如何读取这些数据的信息.
Mat*_*teo 39
根据@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"
Run Code Online (Sandbox Code Playgroud)
希望这有帮助
小智 9
getClassMetadata(mixed $ className)返回类的ORM元数据描述符
例如
$metadata = $entityManager->getClassMetadata($className);
Run Code Online (Sandbox Code Playgroud)
"类名必须是完全限定的类名,没有前导反斜杠(因为它由get_class($ obj)返回)或别名类名.例如:MyProject\Domain\User sales:PriceRequest"
| 归档时间: |
|
| 查看次数: |
15426 次 |
| 最近记录: |