2013-03-04 115 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 \實體\用戶

問候,酰胺