Doctrine orm Symfony从字符串类声明中获取className对象

Doctrine orm Symfony从字符串类声明中获取className对象,doctrine-orm,symfony4,classname,Doctrine Orm,Symfony4,Classname,我有一段代码,返回第2行中声明的类名的列名: public function listColumns(EntityManagerInterface $em ) { $class = $em->getClassMetadata(Assure::class); $fields = []; if (!empty($class->discriminatorColumn)) { $fields[] = $class->discriminator

我有一段代码,返回第2行中声明的类名的列名:

 public function listColumns(EntityManagerInterface $em  ) {
    $class = $em->getClassMetadata(Assure::class);
    $fields = [];
    if (!empty($class->discriminatorColumn)) {
        $fields[] = $class->discriminatorColumn['name'];
    }
    $fields = array_merge($class->getColumnNames(), $fields);
    foreach ($fields as $index => $field) {
        if ($class->isInheritedField($field)) {
            unset($fields[$index]);
        }
    }
    foreach ($class->getAssociationMappings() as $name => $relation) {
        if (!$class->isInheritedAssociation($name)){
            foreach ($relation['joinColumns'] as $joinColumn) {
                $fields[] = $joinColumn['name'];
            }
        }
    }
    return $fields;
}

我正在尝试将此函数设置为可参数化,以便在每次尝试获取其列的表/类名时都可以为其指定

这是一种可能的解决方案,可以以不同的方式执行我想要的操作(提取表列名):

   public function listColumns2(EntityManagerInterface $em  ) {

    $conn = $this->getEntityManager()->getConnection();

    $sql = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 
           N'Assure' ";
    $stmt = $conn->prepare($sql);
    $stmt->execute();

    return $stmt->fetchAllAssociative();
   }