per sbarazzarsi di questo problema e generare classi di pronti contro termine, è possibile temporanea modificare la fine del file seguente: Symfony \ vendor \ dottrina \ dottrina-fascio \ Doctrine \ Bundle \ DoctrineBundle \ Command \ generateEntitiesDoctrineCommand. php
if ($m->customRepositoryClassName
&& false !== strpos($m->customRepositoryClassName, $metadata->getNamespace())) {
$repoGenerator->writeEntityRepositoryClass(
$m->customRepositoryClassName, $metadata->getPath());
}
con il seguente codice:
if (true) {
$output->writeln(
sprintf(' > AND Repository <comment>%s</comment>', $m->name . "Repository")
);
$repoGenerator->writeEntityRepositoryClass(
$m->name . "Repository", $metadata->getPath());
}
Alcune spiegazioni: in questo codice,
- il se la condizione è semplificata con 'se (vero)' (e potrebbe finalmente essere completamente soppresso, se si desidera)
- $ M-> customRepositoryClassNameè sostituito dal$ m-> nome. "Repository"
- Ho aggiunto alcuni output per essere ben informati (nella finestra del terminale) quando vengono generati i file repo.
Se non si utilizza il 'se (vero)' stato, e si desidera controllare le cose da solo, è anche possibile aggiungere un caso facoltativa altro con un'uscita per ottenere ben informati in futuro:
else {
$output->writeln(sprintf(' > NO repository generated for this class'));
}
Dopo le modifiche, è possibile ri-eseguire il comando, come al solito:
php app/console doctrine:generate:entities AcmeStoreBundle
si tratta di un codice provvisorio, perché il problema non è molto chiaro per me fino ad ora, le uniche cose che SE e è che sembra provenire da $ m-> customRepositoryClassName che restituisce una stringa vuota. Quindi, per trovare un'altra soluzione definitiva, un modo potrebbe essere quello di controllare il metodo customRepositoryClassName dell'oggetto metadati ...
Come stai verificando che i file non esistono? Se è all'interno di un IDE, prova ad aggiornare. Il comando non dice nulla sulla generazione di file di repository, ma li genera comunque. – smottt
Sia in IDE che attraverso Windows 'explorer. –