【发布时间】:2021-07-24 22:16:59
【问题描述】:
我有这段代码返回第二行中声明的 className 的列名:
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;
}
我正在尝试使此函数可参数化,以便每次我尝试获取其列的表/类名时都可以给出它
【问题讨论】:
标签: doctrine-orm symfony4 classname