Aby pozbyć się tego problemu i wygenerować klas repo, można tymczasowy modyfikować koniec następnego pliku: symfony \ vendor \ doktryna \ doktryna-pakiet \ Doctrine \ Bundle \ DoctrineBundle \ command \ generateEntitiesDoctrineCommand. php
if ($m->customRepositoryClassName
&& false !== strpos($m->customRepositoryClassName, $metadata->getNamespace())) {
$repoGenerator->writeEntityRepositoryClass(
$m->customRepositoryClassName, $metadata->getPath());
}
z następującego kodu:
if (true) {
$output->writeln(
sprintf(' > AND Repository <comment>%s</comment>', $m->name . "Repository")
);
$repoGenerator->writeEntityRepositoryClass(
$m->name . "Repository", $metadata->getPath());
}
Niektóre wyjaśnienia: w tym kodzie,
- jeśli warunek jest uproszczona z 'if (true)' (i może w końcu zostać całkowicie zniesione, jeśli chcesz)
- $ m-> customRepositoryClassNamezastępuje$ m-> name. "Repository"
- Dodałem trochę danych wyjściowych, aby być dobrze poinformowanym (w oknie terminala), kiedy generowane są pliki repo.
Jeśli nie używać „if (true)” warunek i chcesz sprawdzić rzeczy samemu, można również dodać fakultatywnego innego sprawę z wyjściem, aby dobrze poinformowany w przyszłości:
else {
$output->writeln(sprintf(' > NO repository generated for this class'));
}
Po modyfikacjach, można ponownie uruchomić komendę jak zwykle:
php app/console doctrine:generate:entities AcmeStoreBundle
jest to tymczasowy kod, ponieważ problem nie jest bardzo jasne dla mnie do tej pory, jedynym co ja se e jest to, że wydaje się pochodzić z $ m-> customRepositoryClassName, który zwraca pusty łańcuch. Tak więc, aby znaleźć inny i ostateczne rozwiązanie, sposób może być, by sprawdzić metoda customRepositoryClassName obiektu metadanych ...
Jak sprawdzasz, że pliki nie istnieją? Jeśli znajduje się wewnątrz IDE, spróbuj odświeżyć. Polecenie nie mówi nic o generowaniu plików repozytorium, ale generuje je mimo to. – smottt
Zarówno w środowisku IDE, jak i za pośrednictwem przeglądarki Windows. –