Codeigniter 3 с Doctrine 2 - Doctrine \ ORM \ Mapping \ MappingException Класс не является допустимым сущностью или отображенным суперклассом

0
задан Pim_nr_47 13 July 2018 в 15:20
поделиться

1 ответ

Решил это!

Я узнал, что использовал SimpleAnnotationReader, который не нравится аннотации, созданные командой инструмента orm cli, которые я использовал:

php cli-doctrine.php orm:convert-mapping --from-database annotation models/entities

As вы можете увидеть здесь, в методе «createAnnotationMetadataConfiguration» класса Doctrine \ ORM \ Tools \ Setup последний параметр указывает на использование простейшего редактора:

        /**
         * Creates a configuration with an annotation metadata driver.
         *
         * @param array   $paths
         * @param boolean $isDevMode
         * @param string  $proxyDir
         * @param Cache   $cache
         * @param bool    $useSimpleAnnotationReader
         *
         * @return Configuration
         */
        public static function createAnnotationMetadataConfiguration(array $paths, $isDevMode = false, $proxyDir = null, Cache $cache = null, $useSimpleAnnotationReader = true)
        {
            $config = self::createConfiguration($isDevMode, $proxyDir, $cache);
            $config->setMetadataDriverImpl($config->newDefaultAnnotationDriver($paths, $useSimpleAnnotationReader));

            return $config;
        }

Итак, все, что мне нужно сделать, чтобы заставить его работать, чтобы дать ему ложный флаг для использования simpleannotationreader (в моем загрузочном блоке Doctrine.php):

$config = Setup::createAnnotationMetadataConfiguration($metadata_paths, $dev_mode, $proxies_dir, null, false);

И теперь он отлично работает!

0
ответ дан Pim_nr_47 17 August 2018 в 12:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: