Get entity name from class object

后端 未结 4 869
予麋鹿
予麋鹿 2021-01-17 08:23

I have the following code:

namespace Acme\\StoreBundle\\Entity;

use Doctrine\\ORM\\Mapping as ORM;

/**
 * Acme\\StoreBundle\\Entity\\User
 *
 * @ORM\\Tabl         


        
4条回答
  •  孤独总比滥情好
    2021-01-17 08:57

    getClassMetadata() is deprecated and will be removed in the future. Use getMetadataFor() instead:

    $entityName = $this->em->getMetadataFactory()->getMetadataFor(get_class($entity))->getName();
    

    Or a complete function:

    /**
     * Returns Doctrine entity name
     *
     * @param mixed $entity
     *
     * @return string
     * @throws \Exception
     */
    private function getEntityName($entity)
    {
        try {
            $entityName = $this->em->getMetadataFactory()->getMetadataFor(get_class($entity))->getName();
        } catch (MappingException $e) {
            throw new \Exception('Given object ' . get_class($entity) . ' is not a Doctrine Entity. ');
        }
    
        return $entityName;
    }
    

提交回复
热议问题