Eu tinha uma classe de entidade em Aib \ PlatformBundle \ Entity \ User.php
Não tive problemas para tentar criar sua classe de formulário por meio
php app / console doctrine: generate: form AibPlatformBundle: User
Agora mudei o namespace para Aib \ PlatformBundle \ Entity \ Identity \ User, mas quando tento gerar o formulário com a tarefa, disse antes:
"A classe Aib \ PlatformBundle \ Entity \ User não é uma entidade válida ou superclasse mapeada."
Este é o conteúdo do arquivo:
<?php
namespace Aib\PlatformBundle\Entity\Identity;
use Doctrine\ORM\Mapping as ORM;
/**
* Aib\PlatformBundle\Entity\Identity\User
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="Aib\PlatformBundle\Entity\Identity
\UserRepository")
*/
class User
{
...
Qualquer ideia?
symfony2.0.4
php
symfony
doctrine-orm
ziiweb
fonte
fonte
Respostas:
Tive este problema - não se esqueça da anotação
* @ORM\Entity
como abaixo:fonte
Tive esse problema ontem e encontrei este tópico. Criei a entidade com o mapeamento em um novo bundle (ex: MyFooBundle / Entity / User.php), fiz toda a configuração de acordo com a docs mas obtive o mesmo erro acima ao tentar carregar o aplicativo.
No final, percebi que não estava carregando MyFooBundle no AppKernel:
Uma ótima maneira de depurar isso é executar este comando:
fonte
Verifique seu arquivo config.yml, deve conter algo assim:
Adicione seu próprio pacote à lista de mapeamentos.
fonte
Resolvi isso passando
false
como o segundo parâmetro paraDoctrine\ORM\Configuration::newDefaultAnnotationDriver
.Levei um tempo vasculhando o Google e o código-fonte.
Meu caso era meio especial, já que eu estava usando um mapeamento apontando para outro diretório não relacionado à instalação do Symfony, pois também tive que usar código legado.
Eu refatorei entidades legadas e elas pararam de funcionar. Eles costumavam usar em
@Annotation
vez de@ORM\Annotation
, portanto, após a refatoração, simplesmente falhava na leitura dos metadados. Por não usar um simples leitor de anotações, tudo parece normal.fonte
No meu caso, o problema foi resolvido alterando o cache do meu servidor de eAccelerator para APC . Aparentemente, o eAccelerator remove todos os comentários dos arquivos, o que quebra suas anotações.
fonte
opcache.save_comments=1
, talvez haja um também para eAccelerator / APC?Resolvi esse problema definindo
$useSimpleAnnotationReader=false
ao criar oMetaDataConfiguration
.fonte
muito obrigado a Mark Fu e mogoman
Eu sabia que tinha que estar em algum lugar no config.yml ... e ser capaz de testá-lo contra o
realmente ajudou!
Na verdade, este comando simplesmente para em um erro ... sem feedback, mas quando tudo estiver bem, você deverá ser capaz de ver todas as suas entidades listadas.
fonte
Resolvi a mesma exceção excluindo um arquivo orm.php autogenerated conflitante na pasta Resources / config / doctrine do pacote; de acordo com a documentação: "Um pacote pode aceitar apenas um formato de definição de metadados. Por exemplo, não é possível misturar definições de metadados YAML com definições de classe de entidade PHP anotadas."
fonte
Possibilidade muito alta de que você tenha o PHP 5.3.16 (Symfony 2.x não funcionará com ele). De qualquer forma, você deve carregar a página de verificação em http://you.site.name/config.php Se você teve o projeto não funcionado no servidor de hospedagem, as próximas linhas devem ser removidas em "config.php":
Boa sorte!
fonte
No meu caso, fui muito zeloso durante uma refatoração e excluí um arquivo yml de doutrina!
fonte
No meu caso no meu mac eu estava usando src / MainBundle / Resource / Config / Doctrine, claro que funcionou no Mac, mas não funcionou no servidor Ubuntu de produção. Depois de renomeado Config para config e Doctrine para doctrine, os arquivos de mapeamento foram encontrados e começou a funcionar.
fonte
Eu me livrei da mesma mensagem de erro do seu caso usando app / console_dev em vez de apenas app / console
fonte