2013-03-04 116 views
1

我在我的symfony中实现了FOSUser模块,我创建并配置了所有文件作为tutorial.here是我的config.yml文件进行映射。symfony +映射错误

namespace Acme\UserBundle\Entity; 

use FOS\UserBundle\Entity\User as BaseUser; 
use Doctrine\ORM\Mapping as ORM; 


class User extends BaseUser 
{ 

protected $id; 

public function __construct() 
{ 
    parent::__construct(); 
    // your own logic 
} 
} 

它显示了以下错误..

MappingException: The class 'Acme\UserBundle\Entity\User' 
was not found in the chain configured namespaces FOS\UserBundle\Entity 

这里是我的config.yml文件,其中我提到autoloding。它仍然不起作用。

 imports: 
- { resource: parameters.yml } 
- { resource: security.yml } 

    framework: 
#esi:    ~ 
#translator:  { fallback: %locale% } 
secret:   %secret% 
router: 
    resource: "%kernel.root_dir%/config/routing.yml" 
    strict_requirements: %kernel.debug% 
form:   ~ 
csrf_protection: ~ 
validation:  { enable_annotations: true } 
templating: 
    engines: ['twig'] 
    #assets_version: SomeVersionScheme 
default_locale: "%locale%" 
trusted_proxies: ~ 
session:   ~ 
fragments:  ~ 

# Twig Configuration 
twig: 
debug:   %kernel.debug% 
strict_variables: %kernel.debug% 

# Assetic Configuration 
assetic: 
debug:   %kernel.debug% 
use_controller: false 
bundles:  [ ] 
#java: /usr/bin/java 
filters: 
    cssrewrite: ~ 
    #closure: 
    # jar: %kernel.root_dir%/Resources/java/compiler.jar 
    #yui_css: 
    # jar: %kernel.root_dir%/Resources/java/yuicompressor-2.4.7.jar 

    # Doctrine Configuration 
doctrine: 
dbal: 
    driver: %database_driver% 
    host:  %database_host% 
    port:  %database_port% 
    dbname: %database_name% 
    user:  %database_user% 
    password: %database_password% 
    charset: UTF8 
    # if using pdo_sqlite as your database driver, add the path in parameters.yml 
    # e.g. database_path: %kernel.root_dir%/data/data.db3 
    # path:  %database_path% 

orm: 
    auto_generate_proxy_classes: %kernel.debug% 
    auto_mapping: true 

# Swiftmailer Configuration 
swiftmailer: 
transport: %mailer_transport% 
host:  %mailer_host% 
username: %mailer_user% 
password: %mailer_password% 
spool:  { type: memory } 
fos_user: 
db_driver: orm 
firewall_name: main 
user_class: Acme\UserBundle\Entity\User 
+0

抱歉哥们不是根据堆栈溢出的缩进,但重要的是我会得到的错误。谢谢 – 2013-03-04 08:57:49

回答

7

好的,这应该很容易。您需要,无论是在你的config.yml使auto_mapping或手动指定 “AcmeUserBundle:〜” 有:

doctrine: 
    orm: 
     auto_mapping: true 

2)无auto_mapping

doctrine: 
    orm:  
     mappings: 
      AcmeUserBundle: ~ 

通知与auto_mapping

1),如果您有多个实体经理,您将无法使用auto_mapping功能。 希望这有助于!

+0

这是我的confing.yml请看看它 – 2013-03-04 08:32:49

+0

我提到自动嵌入:真,但仍然有一些错误来临 – 2013-03-04 08:38:42

+0

啊,所以你有'auto_mapping'启用。你可以尝试关闭它并手动添加这些捆绑包?不要忘记在改变之后添加'FOSUserBundle' – 2013-03-04 09:45:48

0

以下行添加到您的app/AppKernel.php文件的捆绑数组:

new FOS\UserBundle\FOSUserBundle() 

这是要注册命名空间Symfony的。

+0

我已经做到了,这是行不通的。 – 2013-03-04 08:23:36

3

它也可以帮助:

添加到您的应用程序/ AppKernel.php:

... 
new Acme\UserBundle\AcmeUserBundle(), 
... 
+0

是的!我遇到了同样的问题。我为我正在做的游戏(皇朝皇帝)创建了一个全新的捆绑包,并且我在Userpace类下找到了'namespace Xmontero \ Emperors \ UserBundle \ Entity';尽管如此,我仍然专注于添加'FOSUserBundle'到内核中,我完全忘记了将'新的Xmontero \ Emperors \ UserBundle \ XmonteroEmperorsUserBundle()'添加到'AppKernel.php'中 - 与SF2一起工作了3年,忘记了这样的事情!流浪汉!不可能!!! – 2014-04-23 20:30:48

0

solucion对我来说:在../Entity/User.php

变化

命名空间Acme \ UserBundle \ Entity;命名空间为Acme \ Bundle \ UserBundle \ Entity;

和在app/config.yml改变

USER_CLASS:Acme公司\ UserBundle \实体\用户与
USER_CLASS:Acme公司\捆绑\ UserBundle \实体\用户

问候,酰胺