Symfony 从实体中获取值
Symfony get Values from Entity
是否有可能从实体中读取所有可用值?
例如
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?
您可以通过 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
的更多信息
希望对您有所帮助
您可以使用 ReflectionClass::getProperties()
遍历所有属性。
是否有可能从实体中读取所有可用值?
例如
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?
您可以通过 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
的更多信息希望对您有所帮助
您可以使用 ReflectionClass::getProperties()
遍历所有属性。