【问题标题】:Symfony get Values from EntitySymfony 从实体获取值
【发布时间】:2015-07-20 13:28:29
【问题描述】:

是否有可能从实体中读取所有可用的值?

例如

class Properties
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="UserID", type="string", length=255)
     */
    private $userID;

    /**
     * @var string
     *
     * @ORM\Column(name="Sport", type="string", length=1)
     */
    private $sport;

.
.
.

这样我会得到值的名称,例如:Id、UserID、Sport?

【问题讨论】:

    标签: symfony doctrine-orm entity


    【解决方案1】:

    您可以通过 Doctrine 元数据信息阅读您需要的信息,如下所示:

        $doctrine = $this->getContainer()->get("doctrine");
        $em = $doctrine->getManager();
    
        $className = "Acme\DemoBundle\Entity\Properties";
    
        $metadata = $em->getClassMetadata($className);
    
        $nameMetadata = $metadata->fieldMappings['sport'];
    
        echo $nameMetadata['type'];  //print "string"
        echo $nameMetadata['length']; // print "1"
    
        // OR query for all fields
        // Returns an array with all the identifier column names. 
        $metadata->getIdentifierColumnNames();
    

    有关API DOC的更多信息

    希望有帮助

    【讨论】:

    • 伟大的。我现在使用“getColumnNames”,所以我将接收所有名称。谢谢你。太棒了:)
    【解决方案2】:

    您可以使用ReflectionClass::getProperties() 循环访问所有属性。

    http://php.net/manual/en/reflectionclass.getproperties.php

    【讨论】:

      猜你喜欢
      • 2017-02-05
      • 2017-10-25
      • 1970-01-01
      • 1970-01-01
      • 2017-02-22
      • 1970-01-01
      • 1970-01-01
      • 2013-12-13
      • 1970-01-01
      相关资源
      最近更新 更多