Я пытаюсь использовать Symfony2 app/console
Командный инструмент для генерации CRUD с помощью команды doctrine2. (app/console doctrine:generate:crud
)
Вот проблема:
Я хочу создать его в поставщики (Да, мы разрабатываем некоторые пакеты непосредственно у поставщиков при запуске).
Когда я делаю команду и даю Название сущности, Это возвращает мне ошибку:
[Doctrine\ORM\ORMException]
Unknown Entity namespace alias 'ExampleTemplateBundle'.
(Да, сущность существует, и имя ярлыка сущности хорошее)
Есть ли способ генерировать CRUD у поставщиков с Symfony2 и Doctrine2?
Вы не можете изменить поставщика.
Попробуйте унаследовать это и создать грубый для вашего собственного лица.
Я нашел решение!
Я разыскал ошибку и исправил проблему. Он проживал в доктрина / Доктрина-расслоение (v1.2.0 для меня).
То, что сделал не удалось, процесс был расположен в файле DoctrineBundle/Mapping/MetadataFactory.php
РЕДАКТИРОВАТЬ : Для людей, использующих doctrine-bundle v1.3.0 и более поздние версии, файл изменил имя. Сейчас DisconnectedMetadataFactory.php
Код ошибки был следующим:
private function getBasePathForClass($name, $namespace, $path)
{
$namespace = str_replace('\\', '/', $namespace);
$search = str_replace('\\', '/', $path);
$destination = str_replace('/'.$namespace, '', $search, $c);
if ($c != 1) {
throw new \RuntimeException(sprintf('Can\'t find base path for "%s" (path: "%s", destination: "%s").', $name, $path, $destination));
}
return $destination;
}
Так что я сделал, я раздвоил репо, заменил код на это:
private function getBasePathForClass($name, $namespace, $path)
{
$namespace = str_replace('\\', '/', $namespace);
$search = str_replace('\\', '/', $path);
$destination = str_replace('/' . $namespace, '', $search);
return $destination;
}
И обновил мой composer.json, чтобы использовать мою разветвленную версию доктрина / Доктрина-расслоение.
Теперь это работает как шарм.